14
12

More than 5 years have passed since last update.

MySQL 8.0 インストール後 メモ

Last updated at Posted at 2019-02-18

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
14
12
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
14
12