MySQLのrootパスワードを思い出す方法(再設定も)決定版
しまった、MySQLのrootパスワードがわからなくなったぞ!
そんな時にまず試したい方法がこれ。
rootの.my.cnfを見る
MySQLのログローテーション用に、/root/.my.cnfにrootパスワードが記述されているのだ。
[dacelo@space ~]$ sudo cat /root/.my.cnf
[mysqladmin] password = "RBjlm20dc+ga" user = root |
これでめでたしめでたし。
しかし環境によってはこれがないかもしれない。そんなときは仕方ない、再設定だ。
mySQLパスワードを再設定する方法
1.rootでパスワードなしログインができるようにする
/etc/my.cnf に、次の一行を足す。
skip-grant-tables
そうするとパスワード無しでログインできるようになる。
2.rootでログインし、パスワードを設定する。
広告
[dacelo@space ~]$ mysql -u root Welcome to the MariaDB monitor. Commands end with ; or \g.
やった、ログインできたぞ。
MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('hogehogefugafuga') WHERE user='root'; MariaDB [(none)]> flush privileges;
新しいパスワードを平文で設定して、privilegeをflushする。これで新しいパスワードでログインできるようになる。
!注!
MySQLのバージョンアップに伴う仕様変更により、上記コマンドでは次のようなエラーが出て設定できない場合がある。その際は下記のように実行だ。
MySQL [(none)]> UPDATE mysql.user SET authentication_string=PASSWORD('hogehogefugafuga') WHERE user='root'; MariaDB [(none)]> flush privileges;
まとめ
今回、パスワード忘れで再設定したら、rootのcronから「ログローテートに失敗しました」と通知が来たので調べてみたので分かったこと。ファイルを見れば分かるんだったら、再設定する必要ないじゃん、と。
なので、MySQLのrootパスワードがわからなくなったら、まずは/root/.my.cnfに書いてないか確かめる。なかったら諦めて再設定をする。と、この順番ですね。