MySQLが起動できなくなった件(MacOSX10.6)

ターミナルから

mysql -u root -p

で、MySQLを起動しようとすると

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

っていうエラーが。

このエラーをもとにぐぐってみて、(こことかを参考に)

  • MySQLサーバーが起動していない
  • MySQLサーバーで使っているUNIXソケットとクライアントソフトで使っているUNIXソケットのパスが違う
  • なんらかの理由でソケットファイルが削除されている

特に起動できなくなった直前にmy.cnfとかいじった覚えないし、ソケットファイル格納ディレクトリのパーミンションも問題なさそう...

いろいろ試行錯誤した結果、よくわからんので再インスコ。。。

次にここを見てみた。

とりあえずrootのパスワード設定

mysqladmin -u root password 新しいパスワード

MySQLの生存確認

mysqld is alive
結果
110308 17:45:09 [Warning] Can't create test file /usr/local/mysql-5.5.9-osx10.6-x86_64/data/MacBook-Pro.lower-test
110308 17:45:09 [Warning] Can't create test file /usr/local/mysql-5.5.9-osx10.6-x86_64/data/MacBook-Pro.lower-test
110308 17:45:09 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110308 17:45:09 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110308 17:45:09 InnoDB: The InnoDB memory heap is disabled
110308 17:45:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins
110308 17:45:09 InnoDB: Compressed tables use zlib 1.2.3
110308 17:45:09 InnoDB: Initializing buffer pool, size = 128.0M
110308 17:45:09 InnoDB: Completed initialization of buffer pool
110308 17:45:09  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

ってでた

なんかplugin.frmっていうファイルが見つかりません的なことが言われてるけど...

my.cnfを/etcにコピーする

初期設定ではmy.cnfというファイル自体は存在しないので、/usr/loacl/mysql~~/support-files/my-small.cnfをコピーする

cp /usr/loacl/mysql~~/support-files/my-small.cnf /etc/my.cnf

mysql.sockがないって怒られる

依然mysql.sockがないって怒られていることには変わりはない。

しかし、どうやらMySQLをセーフモードで起動することによってmysql.sockが作成されるらしい。

セーフモードで起動
sudo mysqld_safe

これは通った。が。

MacBook-Pro:~ muramatsut$ sudo mysqld_safe
Password:
110308 18:12:46 mysqld_safe Logging to '/usr/local/mysql/data/MacBook-Pro.local.err'.
110308 18:12:46 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

このままなにも起きず。。。

別のターミナルウインドウを開いて

mysql -u root -p

で、起動できました!

mysqld_safeすると /tmp/mysql.sockが生成されていることも確認。

ひとまずまた動かすことができました。。。