要配置Debian PostgreSQL以允许远程访问,请按照以下步骤操作:
安装PostgreSQL: 如果尚未安装PostgreSQL,请运行以下命令来安装它:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
修改PostgreSQL配置文件:
编辑/etc/postgresql/<version>/main/pg_hba.conf文件,其中<version>是您安装的PostgreSQL版本。例如,如果您安装的是PostgreSQL 12,则文件路径为/etc/postgresql/12/main/pg_hba.conf。
sudo nano /etc/postgresql/<version>/main/pg_hba.conf
在文件中找到以下行:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
在这些行下面添加以下内容,以允许远程访问:
# Allow remote connections from any IP address
host all all 0.0.0.0/0 md5
如果您希望仅允许特定IP地址访问,请将0.0.0.0/0替换为特定的IP地址或IP地址范围,例如192.168.1.0/24。
修改PostgreSQL监听地址:
编辑/etc/postgresql/<version>/main/postgresql.conf文件,其中<version>是您安装的PostgreSQL版本。例如,如果您安装的是PostgreSQL 12,则文件路径为/etc/postgresql/12/main/postgresql.conf。
sudo nano /etc/postgresql/<version>/main/postgresql.conf
在文件中找到以下行:
#listen_addresses = 'localhost'
取消注释(删除行首的#)并更改其值以允许远程连接。例如,要允许所有IP地址连接,请将其设置为:
listen_addresses = '*'
如果您希望仅允许特定IP地址连接,请将其设置为特定的IP地址或IP地址范围,例如192.168.1.100。
重启PostgreSQL服务: 保存并关闭配置文件后,重启PostgreSQL服务以使更改生效:
sudo systemctl restart postgresql
创建远程用户并授权:
使用具有管理员权限的用户登录到PostgreSQL,并创建一个新用户(或使用现有用户)以及为其分配数据库访问权限。例如,要创建一个名为remote_user的新用户并允许其访问名为mydb的数据库,请运行以下命令:
sudo -u postgres psql
然后,在psql提示符下输入以下命令:
CREATE USER remote_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE mydb TO remote_user;
EXIT;
现在,您应该能够从远程计算机使用新创建的用户remote_user连接到PostgreSQL数据库。请确保在尝试连接时使用正确的IP地址、端口(默认为5432)和数据库名称。