ホスト名が原因でMacのMySQL起動に失敗した話と、その後の対応について
今日あったことをメモ。
MacBookAirにHomebrewで入れたMySQLが、起動済みだったはずなのに何故か落ちていました。
$ mysql.server status ERROR! MySQL is not running
仕方ないので再度起動をしようとしましたが、何故か起動できず。。
$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/hogehogenoair.pid).
訳が分からずps
コマンドで一応確認してみると、以下のような結果に。
$ ps aux | grep mysql imamoto 2849 0.0 0.0 2432784 604 s002 S+ 12:48AM 0:00.00 grep mysql imamoto 2819 0.0 10.9 3118408 457736 s002 S 12:43AM 0:00.69 /usr/local/Cellar/mysql/5.6.22/bin/mysqld <以下略> imamoto 2735 0.0 0.0 2444628 1116 s002 S 12:43AM 0:00.02 /bin/sh /usr/local/Cellar/mysql/5.6.22/bin/mysqld_safe <以下略> ※実行結果はイメージです
なんかいる!!!mysql起動してる!!
その後、一旦実行中のプロセスをkill
して再びmysql.server start
を試みるも先ほどと同じエラーでやはり失敗。
続いて、起動時のエラーメッセージに含まれていたpidファイル(/usr/local/var/mysql/hogehogenoair.pid
)が存在するのか確認してみます。
$ ls -la /usr/local/var/mysql -rw-r----- 1 hogehoge admin 92775 3 3 10:26 hogehogenoair.err -rw-r----- 1 hogehoge admin 76509 3 4 00:43 hogehoge-no-MacBook-Air.local.err -rw-rw---- 1 hogehoge admin 5 3 4 00:43 hogehoge-no-MacBook-Air.local.pid <以下略>
すると、探していたpidファイルの代わりにhogehoge-no-MacBook-Air.local.pid
が見つかりました。
pid拡張子の前についているhogehoge-no-MacBook-Air.local
とは、普段自分のmacで使われているホスト名です。
ここで念のためホスト名を確認してみます。
$ uname -n hogehogenoair
ホ、ホスト名が変わってる。。。
これを見て、おそらく原因はホスト名が変わってしまったことにあるのではないかと思い色々と調べてみると、こんな記事を見つけました。
この記事によると、macでは接続するネットワークによってホスト名が変更されてしまうことがあるとのこと。
今日は普段と違って私物のスマホのテザリングを使っていたので、ホスト名が変わってしまっていたようです。
ホスト名を固定にしたかったので、記事を参考に/etc/hostconfig
に以下の一行を加えてmacを再起動しました。
HOSTNAME=hogehoge-no-MacBook-Air.local
これでテザリング中でもホスト名は固定されたので、mysql.server start
で無事MySQLが起動できました。
ただ、、他にも良い方法がありそうな香りがプンプンします。
知っている方がいたら教えてください。。