我试着在CentOS-Linux-7上安装了PostgreSQL 11
-
- 関連記事
CentOS-Linux-7にPostgreSQL 10をインストールしてみた
环境
# cat /etc/redhat-release; arch; locale | head -n1; users
CentOS Linux release 7.6.1810 (Core)
x86_64
LANG=ja_JP.utf8
root root
安排
使用 root 用户账户进行安装,然后使用由其自动生成的 postgres 用户账户进行配置和操作测试。
18.1. The PostgreSQL User Account: ポスグレ本家(英語)|旧版の和訳: JPUG
安装
如果已经安装了PostgreSQL,则删除它。
# yum list installed | grep postgres
# yum remove postgresql postgresql-libs postgresql-server
# userdel -r postgres
安装yum仓库设置。
# rpm -ivh https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
PostgreSQL RPM Repository (with Yum)(英語)
安装PostgreSQL11
# yum install postgresql11 postgresql11-libs postgresql11-server
...
完了しました!
# psql --version
psql (PostgreSQL) 11.1
psql: ポスグレ本家(英語)|旧版の和訳: JPUG
设定和运行测试
数据库服务器自动启动设置
# systemctl enable postgresql-11.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.
# systemctl list-unit-files -t service | grep postgres
postgresql-11.service enabled
确认是否已注册了postgres用户账户。
# cut -d: -f1 /etc/passwd | grep postgres
postgres
登入到postgres用户账户。
# su - postgres
环境变量
$ vim -c 'start|:set number|:2' ~/.bash_profile
- PGDATA=/var/lib/pgsql/11/data
+ PGCLUSTER=11/data
+ PGHOME=/usr/pgsql-${PGCLUSTER%%\/*}
+ export PATH=$PGHOME/bin:$PATH
+ export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
+ export MANPATH=$PGHOME/share/man:$MANPATH
+ PGDATA=/var/lib/pgsql/$PGCLUSTER
将第2行替换为+号,并使用[ESC]键→:wq进行保存和退出。
16.5. Post-Installation Setup: ポスグレ本家(英語)|旧版の和訳: JPUG
应用设置生效
$ . ~/.bash_profile
$ printenv PGDATA
/var/lib/pgsql/11/data
初始化数据库集群
$ initdb --no-locale -D "$PGDATA"
–no-localeオプション: ロケールを使用しない(推奨)
18.2. Creating a Database Cluster: ポスグレ本家(英語)|旧版の和訳: JPUG
initdb: ポスグレ本家(英語)|旧版の和訳: JPUG
启动数据库服务器,并确认当前的数据库集群。
$ pg_ctl start
...
サーバ起動完了
$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
postgres | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
(3 行)
$ ls "$PGDATA"
PG_VERSION pg_commit_ts pg_multixact pg_stat pg_wal postmaster.pid
base pg_dynshmem pg_notify pg_stat_tmp pg_xact
current_logfiles pg_hba.conf pg_replslot pg_subtrans postgresql.auto.conf
global pg_ident.conf pg_serial pg_tblspc postgresql.conf
log pg_logical pg_snapshots pg_twophase postmaster.opts
18.3. Starting the Database Server: ポスグレ本家(英語)|旧版の和訳: JPUG
pg_ctl: ポスグレ本家(英語)|旧版の和訳: JPUG
22.3. Template Databases: ポスグレ本家(英語)|旧版の和訳: JPUG
68.1. Database File Layout: ポスグレ本家(英語)|旧版の和訳: JPUG
你好,世界!印刷测试
不需要脚本
$ psql -t -A -c "SELECT 'Hello, World! '"
Hello, World!
有脚本
$ vim -c 'start|:set number' ~/hello.sql
-- -*- mode: sql; sql-product: postgres; -*-
SELECT 'Hello, World!';
请按照上述步骤进行输入,使用[ESC]键→:wq进行保存和退出。
把下面的句子用中文进行本地化改写,只需要一个选项:
模式1
$ psql -t -A < ~/hello.sql
Hello, World!
第二个模式
$ psql -t -A -f ~/hello.sql
Hello, World!
Chapter 2. The SQL Language: ポスグレ本家(英語)|旧版の和訳: JPUG
SELECT: ポスグレ本家(英語)|旧版の和訳: JPUG
退出登录
$ logout
请参阅
PostgreSQL 本家(英語)
PostgreSQL 11.1 Documentation: ポスグレ本家(英語)
日本PostgreSQLユーザ会(JPUG)
PostgreSQL 10.5文書: JPUG