安装 PostgreSQL
打开终端并运行以下命令来更新系统的包列表
sudo apt update && sudo apt upgrade -y安装 PostgreSQL 和相关工具
sudo apt install postgresql postgresql-contrib安装完成后,PostgreSQL 服务会自动启动。你可以通过以下命令检查服务状态:
sudo systemctl status postgresql如果服务没有启动,可以使用以下命令启动它:
sudo systemctl start postgresql配置 PostgreSQL 开启远程登录
默认情况下,PostgreSQL 仅允许本地连接(localhost)。要允许远程连接,需要进行以下配置:
修改 PostgreSQL 配置文件
打开 postgresql.conf 配置文件:
sudo vim /etc/postgresql/14/main/postgresql.conf(根据你安装的 PostgreSQL 版本,文件路径可能有所不同。)
找到并修改 listen_addresses 配置项:
listen_addresses = '*'这样,PostgreSQL 将监听所有的 IP 地址。保存文件并退出编辑器。
修改客户端认证配置
打开 pg_hba.conf 配置文件:
sudo vim /etc/postgresql/14/main/pg_hba.conf在文件的末尾添加一行,允许特定 IP 地址范围的远程连接(例如,允许从任何 IP 地址连接):
host all all 0.0.0.0/0 sha256这样配置后,所有 IP 地址都可以通过 SHA256 密码认证方式连接到数据库。如果你只想允许特定的 IP 地址访问,可以将 0.0.0.0/0 替换为你的 IP 地址(例如 192.168.1.100/32)。
重启 PostgreSQL 服务
配置完成后,需要重启 PostgreSQL 服务以使配置生效:
sudo systemctl restart postgresql配置防火墙
如果你的系统启用了防火墙,确保 PostgreSQL 的端口(默认是 5432)已经打开,以允许远程连接。
允许 5432 端口通过 UFW 防火墙:
sudo ufw allow 5432/tcp检查防火墙规则:
sudo ufw status创建用于远程连接的 PostgreSQL 用户
如果你还没有为远程访问创建 PostgreSQL 用户,可以通过以下命令创建一个新用户并授权:
进入 PostgreSQL 命令行:
sudo -u postgres psql创建一个新用户(替换 your_user 和 your_password 为你自己的用户名和密码):
CREATE USER your_user WITH PASSWORD 'your_password';给新用户赋予足够的权限(例如授予超级用户权限):
ALTER USER your_user WITH SUPERUSER;退出 PostgreSQL 命令行:
\q测试远程连接
使用数据库客户端(例如 DBeaver 或 psql)从远程机器连接 PostgreSQL:
psql -h <server_ip> -U your_user -d your_database如果你配置正确,应该能够从远程机器成功连接到 PostgreSQL 数据库。
这样,你就完成了 PostgreSQL 的安装和配置,允许远程连接。
查看日志
sudo tail -f /var/log/postgresql/postgresql-*-main.log