通过yum工具,你可以在CentOS操作系统上安装PostgreSQL-9.6

目的和背景 hé

由于安装步骤分散在各处,我希望有一份整合了的安装手册。

此文件所涵盖的主题

    • CentOS 7.5 (systemd)

 

    Postgresql 9.6 (CentOS公式は9.2)

安装

将 yum 仓库进行注册

请在https://yum.postgresql.org/repopackages.php选择适合的仓库,然后执行yum install <选择的RPM的URL>

$ sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
(中略)
================================================================================
 Package           Arch       Version     Repository                       Size
================================================================================
Installing:
 pgdg-centos96     noarch     9.6-3       /pgdg-centos96-9.6-3.noarch     2.7 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 2.7 k
Installed size: 2.7 k
Is this ok [y/d/N]: y
(中略)
Installed:
  pgdg-centos96.noarch 0:9.6-3                                                  

Complete!

安装目标软件包。

$ sudo yum install postgresql96-server
(中略)
================================================================================
 Package                  Arch        Version                 Repository   Size
================================================================================
Installing:
 postgresql96-server      x86_64      9.6.9-1PGDG.rhel7       pgdg96      4.3 M
Installing for dependencies:
 postgresql96             x86_64      9.6.9-1PGDG.rhel7       pgdg96      1.4 M
 postgresql96-libs        x86_64      9.6.9-1PGDG.rhel7       pgdg96      315 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 6.0 M
Installed size: 26 M
Is this ok [y/d/N]: y
(中略)
Installed:
  postgresql96-server.x86_64 0:9.6.9-1PGDG.rhel7                                

Dependency Installed:
  postgresql96.x86_64 0:9.6.9-1PGDG.rhel7                                       
  postgresql96-libs.x86_64 0:9.6.9-1PGDG.rhel7                                  

Complete!

进行初始设置

执行数据库的初始化操作

$ sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Initializing database ... OK

打开端口(可选)

如果您想要从外部访问PostgreSQL端口,请按照以下步骤进行操作。

聆听”アドレス”的配置

确保对所有IP地址进行接收。

$ sudo vi /var/lib/pgsql/9.6/data/postgresql.conf

请打开上述设定文件,添加listen_addresses = ‘*’。

 # - Connection Settings -

+listen_addresses = '*'
 #listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                         # comma-separated list of addresses;
                                         # defaults to 'localhost'; use '*' for all
                                         # (change requires restart)
 #port = 5432                            # (change requires restart)

配置受信许可地址

$ sudo vi /var/lib/pgsql/9.6/data/pg_hba.conf

以下是允许来自所有IPv4地址的连接。

 # IPv4 local connections:
-host    all             all             127.0.0.1/32            ident
+#host    all             all             127.0.0.1/32            ident
+host    all             all             0.0.0.0/0               md5
 # IPv6 local connections:

打开防火墙端口

如果PostgreSQL的端口设置为默认值,则可以使用以下命令打开端口。

$ sudo firewall-cmd --add-service=postgresql --zone=public --permanent
success
$ sudo firewall-cmd --reload
success

服务启动

进行对systemd的注册

由于准备工作已经完成,那么首先要让postgresql处于可用状态。

$ sudo systemctl daemon-reload
$ sudo systemctl enable postgresql-9.6.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service to /usr/lib/systemd/system/postgresql-9.6.service.

开始服务

$ sudo systemctl start postgresql-9.6
[da@centos2 ~]$ sudo systemctl status postgresql-9.6
● postgresql-9.6.service - PostgreSQL 9.6 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-9.6.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-07-17 12:35:35 EDT; 5s ago
(中略)
Jul 17 12:35:35 centos2 systemd[1]: Started PostgreSQL 9.6 database server.
Hint: Some lines were ellipsized, use -l to show in full

登录

进行登录设置

用postgres用户从psql访问并创建数据库并设置访问权限。

$ sudo -u postgres /usr/pgsql-9.6/bin/psql -U postgres
psql (9.6.9)
Type "help" for help.
postgres=# --ユーザー作成(注意:testというパスワードのため、そのまま使用しないこと)
postgres=# CREATE ROLE test WITH LOGIN PASSWORD 'test';
CREATE ROLE
postgres=# --DBの作成
postgres=# CREATE DATABASE test;
CREATE DATABASE
postgres=# --DBの所有権を移転
postgres=# ALTER DATABASE test OWNER TO test;
ALTER DATABASE
postgres=# --作業完了
postgres=# \q

进行登录确认(在本地服务器上)

# 以下の192.168.1.2はサーバーのIPアドレスを指定すること
$ /usr/pgsql-9.6/bin/psql -h 192.168.1.2 -U test
Password for user test: 
psql (9.6.9)
Type "help" for help.
test=> \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 test      | test     | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
(4 rows)

故障排查

服务无法启动。

请按照指示执行journalctl -xe命令。
如果提示”/var/lib/pgsql/9.6/data/”目录不存在或为空,请参阅”执行数据库初始化”一节。

文献引用

    • yumでPostgreSQLをインストールしてみよう

 

    • PostgreSQLでユーザー(ロール)を追加してテーブルにアクセスする

 

    • CentOS7でポートを開放する方法

 

    yum でインストールされるドキュメント: /usr/share/doc/postgresql96-9.6.9/README.rpm-dist
广告
将在 10 秒后关闭
bannerAds