MacでMySQLのパスワードを忘れた時の対処法
Macで久々にMySQLを触ろうとしたらパスワードを忘れていたので、パスワード変更の方法をメモしておきます。
環境
- mysql Ver 8.0.16 for osx10.14 on x86_64
今回のMySQLは8.0.16のバージョンを使用。MySQLの使い方はversion5系から8系に変わる時に多少変わっており、今回はversion8系の方法を解説します。
MacでのMySQLのパスワードリセット方法
まずは現在動いているMySQLを終了させて、mysqld_safe
を起動。mysqld_safe
の場所は基本的には/usr/local/bin/mysqld_safe
にあると思いますが、mysqld_safeが起動しない場合はwhich mysqld_safe
で場所を調べてください。
mysql.server stop /usr/local/bin/mysqld_safe --skip-grant-tables
--skip-grant-tables
とすることで、MySQLの起動時に行う「パスワードのチェック」などをスキップできます。
参考:MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.3.2 mysqld_safe — MySQL サーバー起動スクリプト
そして、以下のようにmysqlにログインできます。
mysql -u root
ログイン後は以下のようにして、パスワードの再設定を行いましょう。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
以前のバージョンであれば、UPDATE mysql.user SET Password=PASSWORD('new password') WHERE User='root';
のようにすることでパスワードの変更が可能でしたが、バージョン8からは上記のようなコマンドに変更されています。
参考:MySQL :: MySQL 8.0 Reference Manual :: B.4.3.2 How to Reset the Root Password
うまくいった後は、再起動をすればOKです。
mysql.server restart