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/postgresql.conf
listen_addresses = '*'
を追加します。コメントアウトされてるところがあるので、そこに書いても良いかも。
再起動
$ service postgresql restart
kill -HUPだと再起動せずに変更を反映できるとかなんとかありましたけど、よくわからないのでとりあえず再起動を。
一応これで動くみたい。