Postgresql12安装后的一些配置
发布于:(更新于:)
以下操作均在 root 权限下执行。
基本配置
安装 PostgreSQL 的过程并不复杂,这里有一篇不错的文章,不过是英文的,问题不大的话可以看看:How To Install PostgreSQL 12 on CentOS 7 / CentOS 8,不过我还是要提几点:
-
安装成功后,记得先初始化数据:
/usr/pgsql-12/bin/postgresql-12-setup initdb
-
基本上有必要开机自动启动服务,所以需要执行:
systemctl enable --now postgresql-12
-
如果服务器安装有防火墙(例如:firewalld), 可能需要一些额外的操作,下面会提到。
-
安装好后,会有一个创建一个用户postgres,你需要修改用户密码。
su - postgres psql -c "alter user postgres with password '123abc-fnu3290f3f3f'"
上面这个密码我随便写的,根据情况进行调整。当然你也许需要创建新的用户,例如:
create user whidy with password '123abc-fnu3290f3f3f'
。
完成以上操作基本上就可以在服务端使用了。一些常见的命令,进行测试:
su - postgres psql
现在进入数据库操作,查看数据库用户:
\du
查看现有的数据库
\l
使用postgres数据库
\c postgres
查看数据库表
\dt
... 上面这些比较常见的操作方法,略区别 MySQL,就简单介绍到这里。哦对了 \q
退出。
远端登录相关配置
默认情况下,他的配置端口是 5432,仅支持本地连接,那如果我们需要远程连接,则需要进行一些额外修改。
修改文件 /var/lib/pgsql/12/data/postgresql.conf
,并设置监听地址为**“*”**,默认是 localhost,你也可以设置内网地址:
listen_addresses = ‘*’
这个下面有个port,默认 5432,我们来修改端口,比如:
port = 12345
接下来修改 /var/lib/pgsql/12/data/pg_hba.conf
文件允许远端连接:
vi /var/lib/pgsql/12/data/pg_hba.conf
找到**# IPv4 local connections:**这里将其修改为:
host all all 0.0.0.0/0 md5
完成后重启服务: systemctl restart postgresql-12
如果没有防火墙的话,你的其他数据库管理工具就可以连接了。如果 有的话,需要以下设置。
防火墙设置(firewalld)
添加端口:
firewall-cmd --permanent --add-port=12345/tcp firewall-cmd --reload
再试一次,应该就成功了!
无法连接的错误
端口修改后,在postgre可能出现无法连接情况,出错如下:
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432
最好的解决办法是修改环境变量,我直接全局修改了。步骤如下:
- 切换到 root 用户
- 执行
vi /var/lib/pgsql/.pgsql_profile
(这个是用于添加自定义 PostgreSQL 的环境变量的文件) - 添加
export PGPORT=12345
,保存。 - 执行
source /var/lib/pgsql/.pgsql_profile
使其生效。
这样就可以直接在 postgres 用户下正常使用了。
whidy
一名爱折腾的前端开发工程师,喜欢打篮球和分享 ฅʕ•̫͡•ʔฅ