我需要从DigitalOcean上运行的一个VPS上的远程机器访问一个postgresql数据库,该数据库运行的是12.10版本和postgresql 9.1版本。
我应该如何做到这一点?我注意到端口5432是关闭的,我该如何打开它?
我应该如何做到这一点?我注意到端口5432是关闭的,我该如何打开它?
/etc/postgresql/9.1/main/postgresql.conf
文件并进行更改。listen_addresses='localhost'
到
listen_addresses='*'
invoke-rc.d postgresql restart
$ psql -h hostname -U username -d database
/etc/postgresql/9.1/main/pg_hba.conf
并添加
host all all all md5
invoke-rc.d postgresql reload
netstat -nlt|grep :5432
检查一下。 - user224465host <database> <user> <remote_client_IPaddress>/24 md5
。 - gc5SHOW hba_file;
检查服务器上的正确路径,并使用标准命令service postgresql restart
重新启动。 - Peter Krausshost all all all md5
。还需要按照ssl-tcp的指示进行操作,从“创建一个简单的自签名证书…”的第一条命令到“最后,创建一个服务器证书…”的最后一条命令。 - Peter Krausshost all all all md5
是否能正常工作?这是正确的吗?有任何安全问题吗? - Peter Kraussssh -L local_port:localhost:foreign_port user@server
ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com
(根据您的配置更改本地和外部端口)。
然后,您可以直接从本地计算机连接到数据库:
psql -U db_user -p local_port -l
#listen_addresses='localhost'
改为:
listen_addresses='*'
(对不起我的英文不好)。
# Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# IPv4 local connections:
host all all 0.0.0.0/0 md5
sudo /etc/init.d/postgresql restart
sudo ufw allow 5432/tcp