MySQLの初期化
MySQLを完全初期化する方法というものが、世の中には伝わっているようだ。
まずサーバーの停止。
$ killall mysqld
その上で、mysqld/の全消去。
$sudo rm -rf /var/lib/mysqld/
そして初期化。
$sudo su - mysql
$mysql --initialize --datadir=/var/lib/mysql --user=mysql
とすると良いそうだ。しかしこの方法では、my.cnfに書いてある設定情報がそのまま初期化時に使われてしまう。
設定情報まで消す
この時点でかなりやばめな雰囲気が漂っているがこの話は、そのとおり真似しないでいただきたい失敗例だ。言われなくても大体の人は真似しないと思う。
mysqlの設定情報は/etc/mysql/my.cnfなどに書いてある。これを消してしまった。つまり
$sudo rm -rf /etc/mysql/*
してしまった。その上でmysql-serverをパージして再インストールすればええやろ!とか考えてノリで実行してしまった結果1時間近く溶かしてしまった。とにかく頭の悪い話だ・・・。
このまま
$sudo apt-get purge mysql-server
$sudo apt autoremove
の後に、
$sudo apt-get install mysql-server
とすると消してしまった設定ファイルの依存関係の問題から設定できないよー、と言われてしまう。当たり前っちゃあ当たり前。
諸事情でmy.cnfを消しちゃった場合
ほんとにすべての依存関係からMySQLを消し去ってしまえばよい(頭が悪い)
$sudo apt-get remove --purge mysql-*
$sudo apt-get install mysql-server mysql-client
とすれば、mysql-serverを最初にUbuntuマシンに入れたときの気持ちになれる。
参考
mysqlの初期化方法
Having trouble installing and removing MySQL in Ubuntu