我已经在AWS ec2中部署了PostgreSQL,它可以在我的ec2中访问。现在我想让我的PostgreSQL在ec2之外被访问。这是我用来登录PostgreSQL服务器的命令:psql -h <host> -d <dbname> -U <username> -p <PostgreSQL_port>
psql -h <host> -d <dbname> -U <username> -p <PostgreSQL_port>
mlnl4t2r1#
除了配置防火墙允许端口访问外,还需要配置postgres允许从其他主机登录。这是通过向hba-conf file添加条目来完成的。您还需要确保使用listen_addresses设置将postgres配置为实际侦听正确的网络接口。
listen_addresses
bqf10yzr2#
你的命令psql -h -d -U -p发生了变化<PostgreSQL_port>这里使用服务器公共IP代替localhost。编辑/etc/postgresql/"*"/main/postgresql.conf:找到线#listen_addresses = 'localhost'到listen_addresses = '*'。然后将以下行添加到/etc/postgresql/"*"/main//pg_hba.conf:
/etc/postgresql/"*"/main/postgresql.conf
#listen_addresses = 'localhost'
listen_addresses = '*'
/etc/postgresql/"*"/main//pg_hba.conf
host all all 0.0.0.0/0 md5
然后使用sudo service restart postgresql命令重启你的postgresql。请记住在ec2的安全组中授予对PostgreSQL(5432)端口的访问权限。
sudo service restart postgresql
2条答案
按热度按时间mlnl4t2r1#
除了配置防火墙允许端口访问外,还需要配置postgres允许从其他主机登录。这是通过向hba-conf file添加条目来完成的。
您还需要确保使用
listen_addresses
设置将postgres配置为实际侦听正确的网络接口。bqf10yzr2#
你的命令psql -h -d -U -p发生了变化<PostgreSQL_port>
这里使用服务器公共IP代替localhost。编辑
/etc/postgresql/"*"/main/postgresql.conf
:找到线#listen_addresses = 'localhost'
到listen_addresses = '*'
。然后将以下行添加到/etc/postgresql/"*"/main//pg_hba.conf
:然后使用
sudo service restart postgresql
命令重启你的postgresql。请记住在ec2的安全组中授予对PostgreSQL(5432)端口的访问权限。