2010年3月26日金曜日

MySQL が stop しない症状の解決法

Debian で、MySQL をインストールしていて、MySQLを止めようと
 /etc/init.d/mysql stop
と入力すると、
 Stopping MySQL database server: mysqld failed!
と表示されて落とせない、という症状に陥りました。

この症状になった原因がよく分からなかったのですが、もしかすると、他のMySQLから全体をdumpしたものを読み込ませたことにあるのかもしれません。

/var/log/syslog にエラーが吐き出されおり、それによると /etc/mysql/debian.cnf ファイルに何かあることがわかります。それ以外のエラーが起こっている場合は、以下の手順を試すと余計にコケる可能性があります。あくまでも自己責任にてお願いします。
そのファイルには、 debian-sys-maint アカウントなるものの情報が記載されています。早速
 mysql -u root --password=password mysql
mysql データベースに root として接続します。
root のパスワードが分からない場合は・・・。はて・・・、/etc/init.d/mysql を削除して再起動して、パッケージを再インストールでもしてください。
  mysql> select * from user where user='debian-sys-maint';
でユーザ情報を確認します。存在している場合は
 mysql> update user set password=password('hogehoge');
としてパスワードを変更します。(hogehoge /etc/mysql/debian.cnf ファイルに記載のものを書きます。)
存在しない場合は、
 mysql> grant all privileges on *.* to debian-sys-maint@localhost identified by 'hogehoge' with grant option;
と、ユーザを作ります。

これで、mysql をストップできるはずです。

0 件のコメント:

コメントを投稿