在CentOS 7.5上安装PostgreSQL 10的方法是什么?

我将介绍在CentOS 7.5上安装和初始化PostgreSQL 10的步骤。

安装PostgreSQL10

添加存储库

首先,添加 PostgreSQL10 的存储库。

$ sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

如果您想添加其他版本,请从此处查看存储库的URL。

PostgreSQL: Linux下载(红帽系列)

安装

执行下列命令。

$ sudo yum install -y --enablerepo=pgdg10 postgresql10 postgresql10-server
# 確認
$ psql --version
psql (PostgreSQL) 10.5

完成安装后,我们启动它。

$ sudo systemctl start postgresql-10
Job for postgresql-10.service failed because the control process exited with error code. See "systemctl status postgresql-10.service" and "journalctl -xe" for details.

真是失败了。。。

当我调查原因时

$ sudo tail -n 50 /var/log/message
Sep  3 11:54:48 192-0-2-58  systemd: Starting PostgreSQL 10 database server...
Sep  3 11:54:48 192-0-2-58 postgresql-10-check-db-dir: "/var/lib/pgsql/10/data/" is missing or empty.
Sep  3 11:54:48 192-0-2-58 postgresql-10-check-db-dir: Use "/usr/pgsql-10/bin/postgresql-10-setup initdb" to initialize the database cluster.
Sep  3 11:54:48 192-0-2-58 postgresql-10-check-db-dir: See /usr/share/doc/postgresql10-10.5/README.rpm-dist for more information.
Sep  3 11:54:48 192-0-2-58 systemd: postgresql-10.service: control process exited, code=exited status=1
Sep  3 11:54:48 192-0-2-58 systemd: Failed to start PostgreSQL 10 database server.
Sep  3 11:54:48 192-0-2-58 systemd: Unit postgresql-10.service entered failed state.
Sep  3 11:54:48 192-0-2-58 systemd: postgresql-10.service failed.

因为需要初始化DB集群,所以请执行以下命令并重新尝试。

$ sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Initializing database ... OK

# リトライ
$ sudo systemctl start postgresql-10

顺利启动了。

最初的设定

密码设置

首先,设置postgres用户的密码。

# インストール時に追加されているpostgresユーザに切り替え
$ sudo su - postgres

# PostgreSQLに接続
-bash-4.2$ psql
psql (10.5)
Type "help" for help.

# パスワード変更
postgres=\# alter role postgres with password 'パスワード';
ALTER ROLE

# 接続を解除
postgres=# \q
-bash-4.2$ exit
logout

访问设置

将设置更改为允许每个用户通过密码验证进行登录。

# rootユーザに切り替え
$ sudo su -

# 設定ファイルを編集
$ vim /var/lib/pgsql/10/data/pg_hba.conf
# 下記のように変更 
local   all             all                                     password
# IPv4 local connections:
host    all             all             127.0.0.1/32            password
# IPv6 local connections:
host    all             all             ::1/128                 password

# 再起動
$ sudo systemctl restart postgresql-10

确认可以通过密码验证登录。

$ psql -U postgres
Password for user postgres: # 設定したパスワードを入力
psql (10.5)
Type "help" for help.

postgres=#

很高兴密码顺利通过,连接成功了呢。

自动启动

在服务器启动时,配置PostgreSQL以实现自动启动。

$ sudo systemctl enable postgresql-10
广告
将在 10 秒后关闭
bannerAds