しばらく使ってない実験用のサーバーでrootのパスワード忘れて大変な目にあったのでメモ
こちらを参考にさせていただいた。ありがとうございます。
消えると困るので例のごとく勝手ながらバックアップ
1.権限フリーオプション付でmysql起動
まずはmysqlを停止する。
その後
mysqlフォルダ
bin/my.ini
の
[mysqld]
に
skip-grant-tables
を追加して再起動。
もしくは mysqld –skip-grant-tables のようにオプション付で直接起動
2.rootパスワードを再設定する
どう起動したかにもよりますが
とにかく起動時とは別のcmd開いて
mysql -uroot mysql
でrootログインできます。
ログインしましたら,いくつか方法はありますがとにかくuserテーブルのrootのパスワードを変更します。(*下にも少し詳しく書きました)
今回は
mysql> UPDATE mysql.user SET Password=PASSWORD(‘newpassword’) WHERE User=’root’;
でフィールドを変更後
mysql> flush privileges;
反映しました。
どう起動したかにもよりますが
とにかく起動時とは別のcmd開いて
mysql -uroot mysql
でrootログインできます。
ログインしましたら,いくつか方法はありますがとにかくuserテーブルのrootのパスワードを変更します。(*下にも少し詳しく書きました)
今回は
mysql> UPDATE mysql.user SET Password=PASSWORD(‘newpassword’) WHERE User=’root’;
でフィールドを変更後
mysql> flush privileges;
反映しました。
余談ですが上実行後
Rows matched: 2 Changed: 2 Warnings: 0
と言われなんで2なのと思い
select * from mysql.user where User=’root’;
してみるとhostが
localhost
と
127.0.0.1
のrootが2人いました。パスワードは一緒でした。
これがいたって普通の状態なのか,それとも過去に何か理由があって自分で設定したのかは覚えていないです。
確か127.0.0.1をlocalhostとmysqlに認識させるコマンドがあったような気もして,
というか普通 @localhost で済むような。
とりあえず今のところ困っていないのでいいのです。
Comments are closed here.