LoginSignup
3

More than 5 years have passed since last update.

外部サーバーの Docker の MySQL に Sequel Pro から接続する

Last updated at Posted at 2019-02-27

Docker で運用している Redmine の MySQL サーバーに Sequel Pro からアクセスしようとしたら、以下のエラーメッセージが表示されて接続できない。

Lost connection to MySQL server at 'reading initial communication packet', system error: 0

外部サーバーに SSH で接続してコンソールから mysql コマンドで接続することは成功している。

mysql -h 127.0.0.1 -u root -p

MySQL サーバーの接続ホスト名を 0.0.0.0172.18.0.2 (コンテナの IP アドレス) などにしてみるも変わらず。

grep refused /var/log/secure
Feb 27 05:49:29 rm sshd[23858]: refused local port forward: originator 127.0.0.1 port 54698, target 172.18.0.2 port 3306
Feb 27 06:34:16 rm sshd[25509]: refused local port forward: originator 127.0.0.1 port 55548, target 0.0.0.0 port 3306
Feb 27 06:34:40 rm sshd[25530]: refused local port forward: originator 127.0.0.1 port 55565, target 127.0.0.1 port 3306

/var/log/secure を覗くと refused local port forward というエラーが出力されているので検索すると /etc/ssh/sshd_configAllowTcpForwarding ディレクティブが影響するよう。

grep ^AllowTcpForwarding /etc/ssh/sshd_config
AllowTcpForwarding no

Docker が動作しているホスト OS の sshd_configAllowTcpForwarding の値が no になっていた。

AllowTcpForwarding は TCP 転送を許可するかどうかを指定する。 1

sed -i '/^AllowTcpForwarding/ s/no/yes/' /etc/ssh/sshd_config
systemctl restart sshd

AllowTcpForwarding の値を yes に変更して sshd を再起動したところ、無事に Sequel Pro で Docker コンテナの MySQL サーバーに接続することができた。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3