haiju's 開発メモ

開発に必要な情報を自分用にメモ

MySQL でrootのパスワードをリセットする方法

3連休明けに出勤してみたら、全社全体の障害が

発生した影響などを受けて、自分の開発サーバー

MySQLにNavicat(Windows向けGUImysql

(クライアント)でアクセスできなくなるエラーが

発生したので、黒い画面で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 > use mysql;

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(ΦωΦ)

[参考サイト]

https://liginc.co.jp/web/programming/mysql/87393/2

stackoverflow.com

blog.dreamhive.co.jp

gist.github.com

www.sasukepg.jp