在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