PostgreSQL配置远程访问

本文档详细介绍了如何配置PostgreSQL以允许远程访问,包括停用和启动firewalld服务,添加postgresql服务到防火墙,重启firewalld,以及在阿里云安全组中开放端口。同时,还提供了修改PostgreSQL默认用户密码的步骤,以及编辑postgresql.conf和pg_hba.conf文件以允许特定IP或所有IP的连接,并最后重启服务。

systemctl stop firewalld.service
systemctl start firewalld.service
firewall-cmd --add-service=postgresql --permanent  开放postgresql服务
firewall-cmd --reload  重载防火墙
systemctl restart firewalld.service


Postgresql使用的端口是: 5432/tcp 
centos7防火墙默认的zone是:public 
1. firewall-cmd --zone=public --list-ports 
//查看已开放的端口 
2. firewall-cmd --zone=public --add-port=5432/tcp --permanent 
//永久添加5432端口,必须同时设置协议,且必须添加permanent配置,否则reload后失效 
3. firewall-cmd --reload //重加载  
4. systemctl restart firewalld.service //重启  

怎么搞都连不上,搞了一天终于找到原因了,阿里云个娃子的安全组中需要添加安全组规则,开放需要的端口5432!!!

修改默认PostgreSQL用户密码

PostgreSQL的默认用户为“postgres”。 
输入“su - postgres”并回车,切换至用户。 
输入“psql -U postgres”并回车,登录数据库。 
输入“ALTER USER postgres with encrypted password '123123';”(不要漏了“;”)并回车,设置默认用户postgre的密码,此处密码为“123123”,可自行修改。 
输入“\q”并回车, 退出数据库。 
输入“exit”并回车,退出用户。 

配置远程访问

输入“vi /var/lib/pgsql/10/data/postgresql.conf”并回车。 
光标下翻,找到“listen_addresses”。 按“i”键进入插入编辑模式,如果想对所有IP开放,则将“localhost”改为“*”即可,如果想仅对部分IP开放,多个IP之间用“, ”(逗号+空格)隔开。 

改完之后去掉“listen_address”前面的“#”。 

编辑完成后,按“Esc”键,输入“:wq”并回车。 

输入“vi /var/lib/pgsql/10/data/pg_hba.conf”并回车,将光标移至底部。 

按“i”键进入插入编辑模式,在“IPv4 local connections”下方添加允许连接的IP。 
如果想允许所有IPv4地址,则加入一行“host all all 0.0.0.0/0 md5”。IPv6方法类似。 

编辑完成后,按“Esc”键,输入“:wq”并回车。 
输入“systemctl restart postgresql-10”并回车,重启服务。 

为了实现 PostgreSQL 数据库的远程访问,需要进行以下配置: ### 修改 `postgresql.conf` 在 `postgresql.conf` 文件中进行配置以允许远程连接。此文件通常位于 `/etc/postgresql/<版本号>/main/` 目录下(例如 `/etc/postgresql/13/main/` 或 `/etc/postgresql/9.x/main/`)。编辑或添加以下行以允许接受任意 IP 的连接请求: ```conf listen_addresses = '*' ``` ### 修改 `pg_hba.conf` 接下来,编辑 `pg_hba.conf` 文件,该文件与 `postgresql.conf` 位于同一目录。此文件用于控制客户端认证。添加或修改以下行以允许远程客户端连接: ```conf # 允许任意IP地址连接到所有数据库,使用任意用户和密码认证 host all all 0.0.0.0/0 md5 ``` 这行配置表示允许任何 IP 地址访问所有数据库,并且使用 MD5 密码验证。 ### 配置防火墙 PostgreSQL 默认使用端口 `5432` 进行通信。需要在防火墙中开放此端口以允许远程访问。 #### Linux 系统 在 Linux 系统上,使用 `firewall-cmd` 命令添加并重新加载规则: ```bash firewall-cmd --add-port=5432/tcp --permanent firewall-cmd --reload ``` #### Windows 系统 在 Windows 系统上,按以下步骤操作: 1. 打开 **控制面板** -> **系统与安全** -> **Windows 防火墙**。 2. 点击左侧的 **高级设置**。 3. 在左侧树上选择 **入站规则**,然后在右侧操作栏点击 **新建规则**。 4. 在向导中选择 **端口**,然后点击 **下一步**。 5. 在“特定本地端口”输入框中输入 `5432`,然后继续点击 **下一步** 直到完成。 6. 为规则命名,例如“postgresql rule”。 ### 重启 PostgreSQL 服务 完成上述配置后,需要重启 PostgreSQL 服务以使更改生效。在 Linux 系统上,可以使用以下命令重启服务: ```bash sudo systemctl restart postgresql ``` ### 测试远程连接 使用远程客户端工具(例如 `psql` 或图形化工具如 PgAdmin)测试连接。确保客户端连接命令或工具中指定正确的主机名(或 IP 地址)、端口、数据库名称、用户名和密码。 例如,使用 `psql` 测试连接: ```bash psql -h <远程服务器IP> -p 5432 -U <用户名> -d <数据库名> ``` 如果一切配置正确,应能成功连接到 PostgreSQL 数据库。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值