VirtualBoxにインストールしたUbuntuのPostgreSQLにnode.jsからアクセスするまで

基本的にPostgreSQLの設定のメモなお話。RDB苦手っぷりを発揮しております。
環境:Ubuntu 12.04 LTS 64bit / node.js 0.8.7 / npm 1.1.52?

node.jsからpgモジュールでアクセスするコード

node.jsからpgでPostgreSQLにアクセスするコードを書いて実行したのですがアクセスできず。

app.js
var pg = require('pg'),
    client = new pg.Client('pg://username:password@localhost:5432/dbname');

client.connect();
client.query('SELECT * FROM table;', function (err, result) {
  if (err) throw err;
  console.dir(result);
  client.end();
});

localhost:5432となっているのは、ゲストの5432をポートフォーワーディングしてるからです。

PostgreSQLの設定を変更する

原因はただ単にPostgreSQLの設定で、他からのアクセスを許可していなかっただけという……
設定の変更は以下の通り。

/etc/postgresql/9.1/main/pg_hba.conf
host dbname username 0.0.0.0/0 trust

を追加します。セキュリティ的にアレな気がしますが……

/etc/postgresql/9.1/main/postgresql.conf

listen_addresses = '*'

を追加します。コメントアウトされてるところがあるので、そこに書いても良いかも。

再起動

$ service postgresql restart

kill -HUPだと再起動せずに変更を反映できるとかなんとかありましたけど、よくわからないのでとりあえず再起動を。


一応これで動くみたい。