LoginSignup
6
3

More than 3 years have passed since last update.

[Mac]MySQL8 パスワード変更 及びリセット方法

Last updated at Posted at 2019-10-16

MySQL8でパスワードを変更しようとするとなぜかうまくできませんでした。
いろんな方法を試した結果ようやくできたので、MySQL8におけるユーザのパスワード変更及びパスワードリセットの方法を紹介します。

一度MySQLを停止する

mysql.server stop

セーフモードで起動する

mysqld_safe --skip-grant-tables &

パスワードなしでログインする

mysql -u root

一度パスワードなしに設定する

mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

EXIT

mysql > exit;

MySQLを再起動する

mysql.server restart

パスワードなしでログインする

mysql -u root -p 

パスワードを変更する

mysql > USE mysql;
mysql > ALTER USER 'root'@'localhost' identified BY '(ここは新しいパスワード)'; 

もし、エラーメッセージが出たら、パスワード設定ルールを確認してください。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 

パスワード設定ルールの変更も可能

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| 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      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

パスワードの設定ルールを変更しよう

mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

注意点:
下記のコマンドは昔よく使っていましたが、MySQL5.7までしか使えません。エラーが発生する時、上記の方法を使ってみてください。

mysql > update mysql.user set password=password('password') where user = 'root
6
3
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
6
3