【開発環境】
macOS Catalina
Mysql5.7で接続できない状態でrootパスワードを変更する方法
ローカルでmysqlにパスワード付きで接続しようとした時
$ mysql -u root -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
というエラーが出たので、その対処法を記載します。
パスワードが間違っているorそもそもパスワードを設定していない場合に出るエラーみたいですね。
$ mysql -u root
これで接続できればパスワードを設定していないかがわかります。
これで接続できない場合パスワードが間違っている可能性が高いです。
私がやった方法を記載していきます。
Mysqlをストップする
いろいろする前にとりあえずMysqlを止めます。
$ mysql.server stop
状態を見ます。
$ mysql.server status
止まっていれば成功です。
私の場合Mysql自動起動を設定していたので、stopできていませんでした。そういう方は、
$ brew services stop mysql@5.6
のコマンドで自動起動を止めておきます。
Mysqlにパスワードなしで接続する
$ mysqld_safe --skip-grant-tables &
このコマンドでパスワードなしで起動できます。
パスワードなしで接続
mysql -u root
パスワードを再設定する
Mysqlにログイン後にコマンドを打ち込んでいきます。
mysql> use mysql
パスワードを変更するコマンドです。
mysql> UPDATE user SET authentication_string=password('新規パスワード') WHERE user='root';
Mysqlに反映させる。
mysql> flush privileges;
ログアウトします。
mysql> quit
Bye
Mysqlにパスワード有りで接続する
起動します。
$ mysql.server start
パスワード有りで接続します。
$ mysql -u root -p
パスワードを入力してログインできれば成功です。
おわりに
私はこのエラーでかなり時間使ったので記載しました、、、。
参考記事 https://qiita.com/ksugawara61/items/d8d69b7d57a3afcef980
間違いなどがありましたらご指摘いただければ幸いです。
最後までご覧いただきありがとうございました。