4

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 アプリの仮想マシンで db を使用するように Vagrant をセットアップするにはどうすればよいですか?

私の更新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
4

1 に答える 1

6

読者の皆様には申し訳ありませんが、問題は私の不注意にありました。設定をポイントlisten_addresses: '*'しましたが、この設定を誤ってリセットしたため、最終設定ではデフォルトlisten_addresses: 'localhost'値が使用されました。修正後、このポートは開かれました。

于 2013-05-07T22:29:58.800 に答える