なんかUbuntuのVMを強制終了させてMySQLが起動できなくなった話

おいぃ! /etc/init.d/mysql start しても立ち上がらないぞ!!!!

電車のなかでMacBookAirでUbuntuのVM立てて作業しようとしたんだけど、なんかどっかで強制終了かスリープさせて移動しちゃったら mysql も mysqld も立ち上がらなくなった。
Ubuntuは12.04

トラブルシューティング

正確には htop で確認したぎり、一瞬立ち上がってすぐに消える感じ?たぶん daemon あたりがヘンになっているっぽい。エラーメッセージは以下

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

なるほど、なんかプロセスを立ち上げるためのソケットがなんかこうつながらないと。で、実際その mysql.sock を探したけどなかった。

いろいろググった

mysql 2002 error」とかいろいろ探したけど、結局「/var/run/mysqld/mysqld.sock ubuntu」で検索したら早かった。

結局全部消して再インストールして無理やり直した

参考::手帖
参考::Ubuntu日本語フォーラム / MySQLが起動できなくなりました。
daemonが起動していないのは上記URLのとおり調べた

ps aux | grep mysql

うん、ないね。
なので強制的に消して再インストールした。参考記事 Ubuntu日本語フォーラム / MySQLが起動できなくなりました。

sudo apt-get remove --purge mysql-server* mysql-common 
sudo apt-get autoremove –purge 
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql

sudo apt-get install mysql-server

力技だ。

記事かいてて気づいた

Ubuntu日本語フォーラム / MySQLが起動できなくなりました。

この問題は自分もハマったのですが、Precise に搭載されている MySQL のバージョンだと
default-character-set というオプションは廃止になり、このオプションを記述していると、
起動時にエラーを吐いてこけます。

新しいバージョンの MySQL では代わりに character-set-server オプションを使用してください。
Twitter @epii_jp

そうだったのか……記事は下にも続いていて、もっとちゃんと調べればよかったかもしれない。