我使用postgresql通过Vagrant虚拟机制作,并希望将其用作我的rails应用程序数据库.
我使用类似的Vagrantfile:
Vagrant.configure("2") do |config| config.vm.network :private_network, ip: "192.168.33.18" config.vm.provision :chef_solo do |chef| # I take cookbook from https://github.com/opscode-cookbooks/postgresql chef.add_recipe "postgresql::server" chef.json = { postgresql: { config: { ssl: false, listen_addresses: '*' }, password: { postgres: 'postgres' } } } end end
接下来,我vagrant up
希望接下来database.yml
会有效:
development: database: app_development adapter: postgresql host: '192.168.33.18' username: root
但这不会发生.. Rake任务失败并出现错误:
could not connect to server: Connection refused Is the server running on host "192.168.33.18" and accepting TCP/IP connections on port 5432?
我看到端口实际上没有打开
$ nmap -p 5432 192.168.33.18 Starting Nmap 6.25 ( http://nmap.org ) at 2013-05-07 22:05 FET Nmap scan report for 192.168.33.18 Host is up (0.00047s latency). PORT STATE SERVICE 5432/tcp closed postgresql
我可以在vm上看到一些postgres进程,并且没有任何错误的vagrant输出,所以我相信postgres正常工作.
932 postgres 20 0 126m 9.9m 8916 S 0 2.7 0:00.03 postgres 941 postgres 20 0 97460 1348 192 S 0 0.4 0:00.00 postgres 944 postgres 20 0 126m 1728 548 S 0 0.5 0:00.06 postgres 945 postgres 20 0 126m 1488 316 S 0 0.4 0:00.05 postgres 946 postgres 20 0 126m 2768 1000 S 0 0.7 0:00.00 postgres 947 postgres 20 0 97456 1584 352 S 0 0.4 0:00.00 postgres
如何在我的rails应用程序中设置Vagrant在虚拟机上使用db?
更新我的pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer ########### # Other authentication configurations taken from chef node defaults: ########### local all all trust host all all 0.0.0.0/0 md5
MikDiet.. 6
我向所有读者道歉,但问题在于我的注意力不集中.虽然我指向listen_addresses: '*'
配置,然后我意外重置此配置,因此在最终配置中采用默认listen_addresses: 'localhost'
值.修复后,此端口被打开.
我向所有读者道歉,但问题在于我的注意力不集中.虽然我指向listen_addresses: '*'
配置,然后我意外重置此配置,因此在最终配置中采用默认listen_addresses: 'localhost'
值.修复后,此端口被打开.