はじめに
MySQLのrootパスワードを忘れて困ってしまったことはありませんか?
重要なデーベースが入っているのに、もうアクセスできないのでは…と、とても焦りますよね。
ご安心ください、rootパスワードはリセットが可能です。
ここでは、macOS環境でMySQL8のrootパスワードをリセットする方法を紹介します。
MySQLの停止とパスワード無効化
まずは動いている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(プログラス)でプログラミングを学んで、創れる人になろう!
在宅学習応援!今なら複数の基礎コースが無料!!
今すぐ詳細を確認する