MySQL の root パスワードを変更する方法


Ubuntu18.04 を Vagrant でセットアップしていたのですが MySQL の root パスワードを忘れてしまい再設定したのでメモしておきます。

セーフモードでMySQLにログイン

まず vagrant にログインします。


vagrant ssh

MySQL サービスを停止します。

service mysqld stop

停止したら MySQL をセーフモードで起動します。

mysqld_safe --skip-grant-tables

MySQLにログインできたら root でログインします。

sudo mysql -u root

root パスワードの変更

ログインしたら root のパスワードを設定します。

use mysql;
update user set password=PASSWORD("変更するパスワードを記述") where User='root';

しかし以下のように「“パスワード”のカラムが”フィールドリスト”にありません」とエラーが出て設定できません。

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

MySQL がアップデートで password カラムが authentication_string に移動したことが原因のようなのでいかのコマンドを実行して書き換えます。

update user set authentication_string=password("変更するパスワードを記述") where user='root';

MySQL の再起動とログイン

MySQL からログアウトします。

exit

セーフモードを停止して MySQL を再起動で再起動します

service mysqld stop
service mysqld start

先程書き換えたパスワードでログインします。

mysql -u root -p

無事書き換わりました!

参考サイト

MySQLでrootパスワードを忘れた場合の対処方法

MySQL 5.7.6でroot用パスワードが変わらなくて困った話

コメントを残す