跳转至

PostgreSQL的安装与配置

PostgreSQL的安装与配置

更新日期:2020-07-24


1. 在CentOS中安装PostgreSQL

先使用下面的命令列出可以安装的包:

1
yum list | grep postgre

参考输出:

1
2
postgresql.x86_64                   10.6-1.module_el8.0.0+15+f57f353b
postgresql-server.x86_64            10.6-1.module_el8.0.0+15+f57f353b

这里我们安装服务器版本的。

1
yum install postgresql-server.x86_64

安装完成后会自动为我们创建postgresql.service以及用户/组postgres。但是此时是无法启动的。

可以前往如下位置查看自动创建的service文件:

1
/usr/lib/systemd/system/postgresql.service

2. 初始化数据库

在第一次启动之前必须要进行初始化。PostgreSQL将默认使用如下目录作为存放数据的地方:

1
/var/lib/pgsql/data

这个目录在安装PostgreSQL的时候已经自动帮我们创建出来了,里面是空的。

然后使用如下的命令进行初始化。当然你可以通过指定参数来使用自定义的目录而不是上面的默认目录。

1
/usr/bin/postgresql-setup --initdb

这条命令默认将创建名字为postgres的数据库。当然包括名字在内的许多东西都是可以通过参数来配置的。

3. 启动数据库

由于数据库是systemd下面创建的一个service。所以可以使用systemd系列命令来操作它。

设置为开机启动并启动postgresql:

1
2
systemctl enable postgresql
systemctl start postgresql

4. 配置允许远程连接DB

通常我们将DB安装在远程服务器上,然后在本地通过一些DB可视化工具来连接并操作DB。 但是默认情况下安装完之后postgresql并不允许其他主机的连接。只能本地命令行操作。

要想这样用,必须要进行一些配置。

更改pg_hba.conf配置

在最后添加一行配置以允许指定的IP地址来连接服务器。

1
2
3
4
5
6
7
host        all                 all                     ::1/128                 ident
# Allow replication connections from localhost, by a user with the                          
# replication privilege.                            
local       replication         all                     peer
host        replication         all                     127.0.0.1/32            ident
host        replication         all                     ::1/128                 ident
host        all                 all                     本地机器的IP地址/32        md5

更改postgresql.conf配置

找到如下几行内容并修改:

1
2
3
4
5
6
# - Connection Settings -               

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

注意后面的注释说明,默认情况下只监听localhost,也就是服务器本机。改为*表示监听所有机器。

修改postgres的管理员密码

首先使用如下命令进入postgresql的交互命令行模式:

1
sudo -u postgres psql

然后使用如下命令来修改密码:

1
ALTER USER postgres PASSWORD '你的管理员密码';

全部做完以后需要重启postgresql才能生效。

1
systemctl restart postgresql

现在你可以在本地的各种工具中,输入连接信息连接上服务器中的PostgreSQL了。