【PostgreSQL】no pg_hba.conf entry for hostというエラーの対処法
困ったこと
const sequelize = new Sequelize(
"<データベース名>",
"<ロール名>",
"<パスワード>",
{
host: "<ホスト名>",
dialect: "postgres",
}
);
Node.jsのORMライブラリ「Sequelize」を使っており、その初期化をしようとしたら
no pg_hba.conf entry for host
上のようなエラーが出た。
解決法
const sequelize = new Sequelize(
"<データベース名>",
"<ロール名>",
"<パスワード>",
{
host: "<ホスト名>",
dialect: "postgres",
+ dialectOptions: {
+ ssl: {
+ require: true,
+ rejectUnauthorized: false,
+ },
+ },
}
);
原因
追加したオプション名にもある通り、SSL接続を有効にしてなかったことが原因。
dialectOptions: {
ssl: true;
}
ちなみに上記のようにSSL接続を有効にするだけで解決しない場合もあるらしく、rejectUnauthorized: false
も必要になってくるとのこと。
詳しくは分かりかねるが、rejectUnauthorized
はSSL証明書云々の設定だとか。