MySQLのrootパスワードを忘れて困ってしまったことはありませんか?
重要なデーベースが入っているのに、もうアクセスできないのでは…と、とても焦りますよね。
ご安心ください、rootパスワードはリセットが可能です。
ここでは、macOS環境でMySQL8のrootパスワードをリセットする方法を紹介します。
まずは動いているMySQLプロセスがあれば停止してください。
$ mysql.server stop
次に、パスワード無効化のためにMySQLをセーフモードかつ権限スキップオプションで起動します。
$ mysqld_safe --skip-grant-tables &
MySQLにログインし、rootパスワードをnullにして無効化しましょう。その後、いったんログアウトします。
$ mysql -u root mysql> update mysql.user set authentication_string=null where User='root'; mysql> exit;
次に通常モードでMySQLを再起動しログインしてください。パスワードは無効化したため不要です。
$ mysql.server restart $ mysql -u root
下記のコマンドでrootパスワードを新しく設定できます。hogehogeの部分に指定したいパスワードを入力してください。
ログアウトし、新パスワードでログインできることを確認しておきましょう。
※ここでエラーが出た場合は次項を参照してください。
mysql> alter user 'root'@'localhost' identified by 'hogehoge';
新しいパスワードを設定しようとした場合に、下記のエラーが出ることがあります。
入力された新パスワードはポリシーを満たしていないから却下する、という内容ですね。
mysql> alter user 'root'@'localhost' identified by 'hogehoge'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirement
「MySQL8.0をmacOSにインストールする方法」の手順のように、最初の設定でパスワードポリシーを「LOW」にしていてもパスワードリセットにより変更されることがあります。
下記コマンドで確認してみましょう。validate_passowrd.policyが「MEDIUM」になっていますね。制約がより厳しくなっており、入力したパスワードが却下されたわけです。
mysql> show variables like 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+
これをLOWに書き換えます。
mysql> set global validate_password.policy=LOW;
再度、新しいパスワードの設定を行います。
mysql> alter user 'root'@'localhost' identified by 'hogehoge'; Query OK, 0 rows affected (0.02 sec)
今度は無事変更されました。
macOS環境でMySQL8のrootパスワードをリセットする方法を紹介しました。
自分一人で使用するデータベースではなく、数人で使用している時は必ずリセットしていいかどうかを周りに確認してから行いましょう。
パスワードを忘れてしまうと慌ててしまいますが、焦らずゆっくり試してみてください。
オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!
プレミアムプランを2週間無料体験しよう
今すぐ詳細を確認する