Hug*_*own 11 postgresql vagrant postgresql-9.1
我有一个使用Vagrant设置的VM,其上运行Postgres(在端口5432上),转发到主机上的端口8280.
我已经为默认用户设置了密码,我可以在本地连接就好了.
我一直试图通过端口8280从主机设置访问权限,而我一直无法使用'MD5'作为信任方法.
我已经开始postgresql.conf
收听所有地址:
# postgresql.conf
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
我配置pg_hab.conf
如下:
# pg_hab.conf
#TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud)
使用所有这些设置,如果我从主机运行以下命令:
psql --host=127.0.0.1 --port=8280 --username=postgres -d mydb -c '\l'
Run Code Online (Sandbox Code Playgroud)
我被提示输入密码,然后我得到:
psql: FATAL: password authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
如果我然后将METHOD从'md5'更改为'trust',我就不会要求输入密码,我可以按预期连接.我的问题是 - 为什么我不能使用'md5'连接,这是我想要做的?我知道我输入的密码是正确的(我已经更改了),但由于某种原因它无法正常工作.
Gui*_*lla 25
我有同样的问题.问题出在主机端,基本上防火墙阻塞了我正在使用的端口.所以这就是我所做的(我使用的是OSX Mavericks)
打开端口(主机)
sudo ipfw add 7000 allow tcp from any to any dst-port 7001
修改Vagrantfile以允许端口转发
config.vm.network "forwarded_port", guest: 5432, host: 7001
编辑postgresql.conf(访客)
listen_addresses = '*'
编辑pg_hba.conf
(你可能想要更好地调整它)
host all all 0.0.0.0/0 md5
现在,从主机连接正常使用端口(在我的情况下为7001)和'localhost'作为主机地址
您需要为该用户设置密码postgres
。默认情况下没有,所以无法连接。
ALTER USER postgres PASSWORD 'somepassword';
Run Code Online (Sandbox Code Playgroud)
您的本地连接可能可以正常工作,因为它们使用带有peer
身份验证的 unix 套接字,而不是 TCP/IP。如果您使用:
psql -h 127.0.0.1 -U postgres postgres
Run Code Online (Sandbox Code Playgroud)
在虚拟机上,您可能会发现这也失败了,因为您现在实际上正在测试基于 TCP/IP 的连接。
归档时间: |
|
查看次数: |
10897 次 |
最近记录: |