MySQL5.x系と若干違うのでメモ
インストール直後のパスワードの確認
[root@localhost ~]# cat /var/log/mysqld.log | grep 'temporary password'
2019-02-18T14:53:51.702752Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: YZuz:ifng1+-
このパスワードでログインします。
コマンドは例です。本当はパスワードがログに残るようなコマンドはだめ。
[root@localhost ~]# mysql -uroot -pYZuz:ifng1+-
パスワード有効時間の変更
パスワードに有効期限があるので、これを無制限にします。いったんMySQLを止めて
/etc/my.cnf に記述追加
/etc/my.cnf
[mysqld]
default_password_lifetime=0
MySQLを起動。
rootパスワードの変更
その前にパスワード設定のルールを変更します。
最初はこんな風に怒られます。
mysql> SHOW VARIABLES LIKE 'validate_password%';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
いったん何でもいいのでパスワードを変更します。ここでは最初のパスワードの後ろに「123」をつけておきます。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'YZuz:ifng1+-123';
確認します。
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| 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.01 sec)
項目名が5.x系と違っているので注意
検索して出てくる通りにすると怒られます。
mysql> SET GLOBAL validate_password_policy=LOW;
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
上の項目と比べて正しくはこうです。
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> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';
Query OK, 0 rows affected (0.01 sec)
NEWPASSWORD に新しく設定するパスワードをセットします。
SELinuxを無効に
[root@localhost ~]# vi /etc/selinux/config
SELINUX=desabled
phpMyAdminで利用できるために
このままだとなぜかphpMyAdminにログインできないので次のように変更
/etc/my.cnf
[mysqld]
default_password_lifetime=0
validate_password.length=4
validate_password.mixed_case_count=0
validate_password.number_count=0
validate_password.special_char_count=0
validate_password.policy=LOW
default_authentication_plugin=mysql_native_password
パスワード関連はここで設定しておく方が楽かも、、、MySQLを再起動。
パスワードを再設定。
mysql > ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'xxx';
CSVインポートが使えるように
/etc/my.cnf
[client]
loose-local-infile=1
全文検索のために
/etc/my.cf
ft_min_word_len = 2
innodb_ft_min_token_size = 2
innodb_ft_enable_stopword = OFF