Amazon LinuxにMySQL5.7をインストールした時にはデフォルトでrootのパスワードが設定されていなかったのですが、Amazon Linux2では設定されていました。開発用なので、次の手順でrootのパスワードをなしに設定しました。
インストール
MySQL5.7のインストール手順は次のとおりです。MariaDBをアンインストールしてからMySQL5.7をインストールします。
sudo service mariadb stop
sudo yum -y erase mariadb-config mariadb-common mariadb-libs mariadb
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
sudo yum install mysql-community-server -y
sudo systemctl start mysqld.service
sudo systemctl enable mysqld.service
rootパスワードの設定
MySQLの初期パスワードは、/var/log/mysqld.log の中に記載されています。
$sudo cat /var/log/mysqld.log | grep password
[Note] A temporary password is generated for root@localhost: [英数字の初期パスワード]
次の手順でrootのパスワードをなしに設定します。
-
MySQLをrootユーザーで起動する。パスワードは /var/log/mysqld.logの初期パスワード
-
暫定的にrootのパスワードを変更する(例えばXY@isono1など、8文字以上、大文字小文字特殊文字を含む必要あり)
-
uninstall plugin validate_passwordでパスワード設定の厳格なルールを無効にする
-
root@localhost=password('')でrootのパスワードを無しに設定する
ec2-user:~/environment $ mysql -u root -p
Enter password: [英数字の初期パスワード]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.36 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'XY@isono1' ;
Query OK, 0 rows affected (0.00 sec)
mysql>uninstall plugin validate_password;
Query OK, 0 rows affected (0.01 sec)
mysql>set password for root@localhost=password('');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit
Bye