rootパスワードを初期化(再設定)する

2020/08/14

MySQL をセーフモードで起動する

MySQL サーバを停止します。


//CentOS
$ sudo mysql.server stop
//Ubuntu/Debian
$ sudo service mysql stop

セーフモード起動

セーフモードで起動します。


$ sudo mysqld_safe --skip-grant-tables &

MySQLがセーフモードで起動しない場合

MySQLのインストール方法によって、以下のエラーでセーフモードで起動しない場合があります。


mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists

mysqld フォルダがないのが原因を作成します。


$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld

別ターミナルでセーフモードログイン確認

root でログインできるか確認してみましょう。


$ mysql -u root

またアプリの MySQL ユーザが root の場合は、設定も変更しておきましょう。

パスワードを再設定する

root でログインします。


$ mysql -u root

root ユーザーのパスワードを空に設定します。 もしパスワードを設定したい場合は、null の部分を文字列で入力してください。


mysql> UPDATE user SET authentication_string=password('新しいパスワード') WHERE user='root';

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


mysql> exit

root でログイン確認する

セーフモードのMySQL を終了し、MySQL を起動します。


//CentOS
$ sudo mysql.server restart
//Ubuntu
$ sudo service mysql restart