こんにちは、汐留みずほです。
MySQL8を使い始めて、いくつかハマったポイントがあったので共有したいと思います。
MySQL8のインストール
まずはMySQL8のインストール手順を記載します。CentOS7にインストールすることを想定した手順です。
CentOS7にデフォルトでインストールされているMariaDBを削除します。
# yum remove -y mariadb-libs.x86_64
# rm -rf /var/lib/mysql
MySQL8をインストールします。
# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# yum -y install mysql-community-server
MySQL8を起動します。2行目はOS起動時に自動起動する設定です。
# systemctl start mysqld
# systemctl enable mysqld
初期パスワード
以前はCentOSのMySQLはrootパスワードがブランクでしたが、MySQL5.7からは、起動時にランダムで初期パスワードが生成されるようになっています。
初期パスワードは/var/log/mysqld.logファイルに書き込まれており、以下のコマンドで確認できます(赤字部分)。
# cat /var/log/mysqld.log | grep root
2019-05-10T03:03:18.756712Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ************
mysql_secure_installationコマンドを用いてrootユーザーのパスワードを変更します。パスワードを変更しないとMySQL上でコマンドが実行できませんのでご注意ください。
# mysql_secure_installation
MySQLにログインします。
# mysql -u root -p
データベースの作成とユーザーの作成
MySQL8以前はgrant文でユーザーの作成と権限の付与を同時におこなうことができましたが、MySQL8からは別々に実行しなければならないよう変更されました。
mysql> create database wordpress character set utf8 collate utf8_bin;
mysql> create user 'wordpress'@'localhost' identified by 'new-password';
mysql> grant all on wordpress.* to 'wordpress'@'localhost' with grant option;
mysql> FLUSH PRIVILEGES;
mysql> quit;
まとめ
いきなりMySQL8を使おうとすると以前のバージョンからの変更点が多く、私も実際にハマってしまいましたが、ポイントをおさえておけば怖くはありませんので、積極的に新しいバージョンを使っていきましょう。