Hatena::ブログ(Diary)

tkrdの日記 (rails や ubuntu のことなど)

株式会社オイアクス (東京都港区芝大門) で社長をしています。

2015-06-10

mysql: 外部からの接続を受け付けなくなって困った話

12:19

きっかけは、Ubuntu 14.04 上で運用中の MySQL 5.6 をアップグレードしたこと。

apt-get install がうまく行かないので、悪戦苦闘した後に、/var/lib/mysqlバックアップを取ってから apt-get purge してから最新の MySQL 5.6 をインストールして、/var/lib/mysql を戻すという方針に転換しました。

いちおううまく動いたのですが、なぜか外部からの接続を受け付けなくなってしまいました。lsof で調べると確かに localhost をリスンしている。

$ lsof -i :3306
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  28953 mysql   13u  IPv4 466855      0t0  TCP localhost:3306 (LISTEN)

/etc/mysql/my.cnf を見返したり、ネット検索で類似の事象を探したりしたけれど、原因が分かりません。

いったん休憩してぼんやり考えていると、「ああ、/usr/my.cnf か」と思い当たりました。このファイル、初期インストール時や mysql_install_db 実行時に、なぜか作られる設定ファイルで、そこに

bind-address = 127.0.0.1

と書いてあって、この行を消すかコメントアウトしなければいけないのでした。

MySQLサーバー再起動後の lsof の結果は次の通り:

$ lsof -i :3306
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  29004 mysql   13u  IPv4 466919      0t0  TCP *:3306 (LISTEN)

しかし、何のために /usr/my.cnf が作られるのかは依然として不明。

トラックバック - http://d.hatena.ne.jp/tkrd/20150610/1433906352
リンク元