AWSの勉強中、
DBサーバーにMYSQLをインストールしたまではよかったもののログインができず困ったため、忘備録。
MYSQLのバージョン:5.7.27
MySQLにアクセスできない
インストールが完了し、DBサーバーを実行したまではよかったもののパスワードを作成しようとするとエラー。
$ mysqladmin -u root password
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
パスワードを確認する
初期起動時にパスワードを自動生成される。その起動時のlog(mysqld.log)にパスワードが残っている。
$ sudo cat /var/log/mysqld.log | grep 'password is generate'
2019-09-03T03:49:01.756755Z 1 [Note] A temporary password is generated for △△△@localhost: 〇〇〇
# ユーザー名 :△△△
# パスワード :〇〇〇
パスワードを変更する
初期設定だと何かと不便なので、変更する。
変更のためには、
1. 仮のパスワードを作成
2. パスワード設定を変更
3. パスワードを再度設定する
という流れとなる。
初期設定のパスワードだと、パスワード設定の確認の際に、変更を求めらるため仮パスワードを設定する。
確認したパスワードでSQLにログインする。
次に適当な長さと強度を持ったパスワードを作る。(8文字以上、小文字、大文字、特殊文字、数字)
# 適当に付けたパスワード:MYSQL@password1
mysql> set password for root@localhost=password('MYSQL@password1');
Query OK, 0 rows affected, 1 warning (0.00 sec)
パスワードを変更したいだけなら、ここまででOK。
パスワード設定を確認する。
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 |
+--------------------------------------+-------+
長さとポリシーを変更して、再度変更を確認。
mysql> SET GLOBAL validate_password_length=4;
mysql> SET GLOBAL validate_password_policy=LOW;
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| 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 |
+--------------------------------------+-------+
mysql> set password for root@localhost=password('root');
4文字以下のパスワードが登録できるようになった。
ちなみにポリシーは
LOW :長さ
MEDIUM :長さ。数値、小文字、大文字、および特殊文字
STRONG :長さ。数値、小文字、大文字、および特殊文字。辞書ファイル
参考ページ
https://dev.mysql.com/doc/refman/5.6/ja/validate-password.html