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 サーバー起動スクリプト

参考:skip-grant-tables

そして、以下のように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