Homebrewで入れたMySQLが起動しない.

環境

  • MacOSX 10.11
  • MySQL Ver 14.14 Distrib 5.7.10, for osx10.11 (x86_64) using EditLine wrapper
  • Homebrew 0.9.5 (git revision fbd9; last commit 2016-01-22)


事象

エラーNo. 1 : socketでエラー&PIDが見つからないと怒られる.

% mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

% mysql.server restart
 ERROR! MySQL server PID file could not be found!

MySQL 5.7.5から, mysql.sock.lock というものが作られるようになっている.

datadir, portをずらしてsocketだけ一致させたmysqldを起動しようとすると、後から起動しようとした方はスタートアップ処理でmysql.sock.lockの存在を検知してAbortしてくれる。

とのことだ. ( http://yoku0825.blogspot.jp/2015/05/mysql-575mysqlsocklock.html より. )


エラーNo.2 : なぜかMySQLWorkBenchでローカル接続しようとすると, Native table 'performance_schema'.'session_variables' has the wrong structure と怒られる.


エラーの確認方法
sudo tail -f /usr/local/var/mysql/xxx-no-macbook-air.err


プロセスのkill
% ps ax | grep mysql
% sudo kill -9 {PID}


解決に至ったプロセス


Permissionの変更

_mysql へ変更する, という記事や user名へ変更するのがよい, という記事など様々だが, 自分は mysql へ変更.

% sudo chown -R _mysql:_mysql /usr/local/var/mysql


エラーNo.1 : PIDをKillした後, sudo権限でserverをスタートさせたところ, 起動した.

% sudo mysql.server start
Starting MySQL
. SUCCESS!

f:id:hrt0kmt:20160125224553p:plain


エラーNo.2 : MySQLのupgrade後, MySQLServerを再起動してやればよい.

% sudo mysql_upgrade -u root -p
% sudo mysql.server restart


参考サイト