機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

RailsのpostgreSQLにローカルネットワーク(LAN/外部)から接続したい

プログラミング

database.yml
“`
development:
adapter: postgresql
encoding: unicode
database: englishtool_development
pool: 5
username: englishtool
password: password1
host: 192.168.99.101

test:
adapter: postgresql
encoding: unicode
database: englishtool_test
pool: 5
username: englishtool
password: password1
host: 192.168.99.101
“`

エラーが……
“`
$ rake db:setup
could not connect to server: Connection refused
Is the server running on host “192.168.99.101” and accepting
TCP/IP connections on port 5432?
Couldn’t create database for {“adapter”=>”postgresql”, “encoding”=>”unicode”, “database”=>”englishtool_development”, “pool”=>5, “username”=>”englishtool”, “password”=>”password1”, “host”=>”192.168.99.101”}
rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
Is the server running on host “192.168.99.101” and accepting
TCP/IP connections on port 5432?

Tasks: TOP => db:setup => db:schema:load_if_ruby => db:create
“`

## 解決方法

(ローカルのlocalhostでは正常に接続できる状態であることを前提しとしています。)

1. postgresq.confファイルの修正

>PostgreSQLは、デフォルトでは自ホストからの接続しか許可していない。

“`
sudo vim /etc/postgresql/10/main/postgresql.conf
# 追記
listen_addresses = ‘*’
“`

2. 接続できるクライアントを設定する

“`
sudo vim /etc/postgresql/10/main/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5

+ # local network
+ # host all all 192.168.0.0/16 md5
+ host all all 0.0.0.0/0 trust
“`

全IP許可認証なしなのでセキュリティガバガバですが、開発環境なら問題ないでしょう。

IPの部分ですが、192.168.0.0/16でも良いかと思います。検証はしていないので確証はありません。認証の部分もmd5でいいかと思います。

3. restart

sudo /etc/init.d/postgresql restart

## 検証

`pgweb –url postgres://englishtool:password1@192.168.99.101:5432/englishtool_development`

“`
$ rake db:setup
Database ‘englishtool_development’ already exists
Database ‘englishtool_test’ already exists
— enable_extension(“plpgsql”)
-> 0.1347s
— enable_extension(“plpgsql”)
-> 1.4060s
“`

## 参考
[Configuring PostgreSQL to Accept Connections From Computers on Your Network | ScreenSteps Workgroup | ScreenSteps Desktop 2.9 and Workgroup Documentation](http://help.bluemangolearning.com/m/screensteps-workgroup/l/18259-Configuring-PostgreSQL-to-Accept-Connections-From-Computers-on-Your-Network)
[Access PostgreSQL server from LAN – Stack Overflow](https://stackoverflow.com/questions/22080307/access-postgresql-server-from-lan)
[他ホストから接続するための設定](http://rina.jpn.ph/~rance/linux/postgresql/connect.html) ← best

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

Rails 5 現在のビューの絶対パス/相対パスを出力
Rails 5 Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
Rails Ahoy
Railsで挫折しないためのRailsの学習の進め方
Rails ポート3000以外でサーバーを実行`rails s`したい
Rails 5 Deviseモデルでrollback transactionエラー
Rails db:migrate済みのテーブルにカラムを追加する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu