MySQL でrootのパスワードをリセットする方法
3連休明けに出勤してみたら、全社全体の障害が
発生した影響などを受けて、自分の開発サーバー
のMySQLにNavicat(Windows向けGUIのmysql
(クライアント)でアクセスできなくなるエラーが
発生したので、黒い画面でmysqlクライアントに
アクセスできるかどうか確認したりしていたが、
本格的に調べようとするとrootのパスワードが必要
ということで、アクセスしてみたら、どういう訳か?
ユーザーでアクセスは問題ないのに、rootでアクセス
しようとするとエラーが発生して無理だった。
なので、rootパスワードが違うんだっけ?
と思い、rootパスワードのリセットを調べてみた(ΦωΦ)
[手順]
1. 実行中のMySQLを停止。
% sudo service mysqld stop
2. MySQLをセーフモードで起動。
% sudo mysqld_safe --skip-grant-tables &
3. MySQLへrootでパスワード無しでログイン。
% mysql -u root
4. rootのパスワードをリセット。
mysql > UPDATE user SET password=PASSWORD(設定したパスワードを""内に) WHERE USER = 'root';
mysql > Flush privileges;
※上記実行後に「Query ok」が出力されればOK。
5. セーフモードで起動したMySQLからログアウト。
mysql > quit;
6. セーフモードで起動したMySQLを停止。
% sudo service mysqld stop
7. 通常モードでMySQLを再起動。
% sudo service mysqld start
8. 再度、4で変更したパスワードでログインできる
か確認。
※結局、2のセーフモードで起動でエラーが発生して
実行できなかったので断念したが、改めて実行したら
何のエラーも発生せずrootでログインできたし、
Navicatも問題なくアクセスできるようになったので、
全社全体の障害からの反映が遅れていただけだった
っぽい。自分は担当者じゃないので、詳しくは知らん
けどw(ΦωΦ)
[参考サイト]