LoginSignup
7
6

More than 3 years have passed since last update.

MySQL8 root パスワード リセット変更

Last updated at Posted at 2020-03-30

経緯

MySQLでrootパスワードを紛失したり、またはパスワードが行方不明になったりしたとき、MySQLへの接続が出来なくなった....そんなときに

このようなエラーを見かけます...

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

セーフモード(mysqld_safe)で起動

1.サーバーストップ
$ mysql.server stop

2.セーフモードでの起動、
$ mysqld_safe --skip-grant-tables &

3.パスワードなしでログインできる
$ mysql -u root

パスワードを空にする

mysql > UPDATE mysql.user SET authentication_string=null WHERE User='root';

ではrootパスワードを変更します

今まで通りこのようなコマンドで変更しようとしたところ、

//失敗例1
mysql > update mysql.user set password=password('hogehoge') where user = 'root';

//失敗例2
mysql > SET PASSWORD FOR root@localhost=PASSWORD('hoge');

//結果
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PASSWORD('root')' at line 1

このように文法エラーという結果が帰ってきます。

PASSWORD() 関数は、MySQL version 5.67 までで廃止

MySQL 8 においては、そもそも関数が存在しないようです。

*下記のコマンドでパスワードを変更

1. MySQL再起動(非セーフモード)
$ mysql.server restart

2. 空のパスワードでログイン
$ mysql -u root -p 
enterでパスなしでログイできる

3.パスワード変更
mysql > USE mysql;
mysql > ALTER USER 'root'@'localhost' identified BY '自分の決めるパスワード';

Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0C

変更できました。

参考サイト
http://www-creators.com/archives/5574

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6