我试着在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

bannerAds