はてなブログ

IT業界にひっそり生息しています。

ホスト名が原因で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のホスト名の設定

この記事によると、macでは接続するネットワークによってホスト名が変更されてしまうことがあるとのこと。

今日は普段と違って私物のスマホテザリングを使っていたので、ホスト名が変わってしまっていたようです。

ホスト名を固定にしたかったので、記事を参考に/etc/hostconfigに以下の一行を加えてmacを再起動しました。

HOSTNAME=hogehoge-no-MacBook-Air.local

これでテザリング中でもホスト名は固定されたので、mysql.server startで無事MySQLが起動できました。

ただ、、他にも良い方法がありそうな香りがプンプンします。

知っている方がいたら教えてください。。