9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

mysqlの起動エラー対応 in mac

Posted at

Hello, mysql

(忘備録)

久しぶりにmysqlに接続しようと、声を掛けると無視されることがある。それどころか[ERROR]と怒られる。

mysqlの怒り1

だいたい最初はこんな感じでやってくる。

$ mysql -uuser -ppassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

はいはい、ファイルを作成すればいいのね、毎回作ってあげます。

$ touch /tmp/mysql.sock 

mysqlの怒り2

もう大丈夫かなと、再度mysqlに繋げようとする。

$ mysql -uuser -ppassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

が、こんな感じでまだ怒る。怒り心頭なのか、レベルが19倍になってしまった()。

※この数値の違いについては全く把握および理解できておりません。申し訳ありません。

mysqlの怒り3

もしかして、mysqlsサーバが立っていないのでは?
mysqlサーバを立ち上げようとする。

$ mysql.server restart
 ERROR! MySQL server process #72998 is not running!
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid).

彼女の欲している/usr/local/var/mysql/xxxxnoMacBook-Pro.local.pidなるものがないから駄々をこねているのかと思い、作ってあげる。

$ touch /usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid

さすがにこれでもう問題ないだろう。。

mysqlの怒り4

$ mysql.server restart
 ERROR! MySQL server process #72998 is not running!
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid).

、、、変わらない。
何がいけないのか、はっきり言ってくれているのか確認するため
/usr/local/var/mysql/xxxxnoMacBook-Pro.local.errを覗いてみた。

が、さっき行ったはずのERRORログは追記されておらず、前回実行した1ヶ月前ほどのログしか残っていない。。

ようやくわかった。
/usr/local/var/mysql/配下は彼女が扱えないようになっていたのだ。

大事なのはパーミッション

mysqlがどのユーザでどのグループなんだっけ?Homebrewでインストールしたから覚えてない。
ええい、めんどくさい。とりあえずこうしてやれ!

$ sudo chmod -R 777 /usr/local/var/mysql/ 

からの

$ mysql.server start
 ERROR! MySQL server PID file could not be found!
Starting MySQL
.. SUCCESS! 

PIDファイルが見つからないと怒られはしたものの、無事起動はできた。めでたし。

PIDファイルは結局なくてもよいのだろうか、、?

補足

ちなみに、ユーザとグループ一覧を確認するには、それぞれ以下のコマンドで可能なようです。

$ dscl . list /Users
$ dscl . list /Group

色々なサイトを参考にしましたが、提示されている解決策は結構バラバラで、というのもmysqlが起動時エラー発生する理由も様々で、、

例えば、/usr/local/var/mysql/配下を再帰的に、ファイル所有者とグループをmysqlに変えろだの、自身のユーザ名に変えろだの、色々書かれていました。
あと、既に動いているプロセスがあればそれをkillするのも鉄則ですね。

これと言ったベストプラクティスみたいなものは特に見つかりませんでしたが、どんな事をするにも共通して言えますが、とにかくエラーログを確認するのが1番早いです。
(今回でいえばこれ -> /usr/local/var/mysql/xxxxnoMacBook-Pro.local.err

参考サイト

https://qiita.com/carotene4035/items/e00076fe3990b9178cc0
http://d.hatena.ne.jp/ksaito11/20110508/1304756757

9
6
0

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
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?