Install MySQL 8.0 on CentOS 7
この記事について
本記事は、CentOS 7.x への MySQL 8.0 のインストールについて記載しています。
インストール
公式ガイド を参考に、yum を使用してインストールを行っていきます。
環境
- OS:CentOS 7.5
- DB:MySQL 8.0
MariaDB の削除
CentOS 7 には、MySQL フォークの MariaDB がデフォルトでインストールされている
場合がありますので、削除しておきます。
# yum remove mariadb-libs -y
# rm -rf /var/lib/mysql
公式 Yum リポジトリの追加
最新のリリース情報については、[MySQL 公式 Yum リポジトリ][Url1] で確認してください。
[Url1]:https://dev.mysql.com/downloads/repo/yum/
# yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
インストール
MySQL Server をインストールします。
# yum install -y mysql-community-server
下記コマンドで、インストールした MySQL のバージョンを確認できます。
# mysqld --version
/usr/sbin/mysqld Ver 8.0.14 for Linux on x86_64 (MySQL Community Server - GPL)
MySQL の起動
MySQL を起動します。
# systemctl start mysqld.service
# systemctl enable mysqld.service
パスワード確認
MySQL インストール時に自動で設定される、root@localhost ユーザーのパスワードを確認します。
# grep 'temporary password' /var/log/mysqld.log
2019-01-08T11:13:27.332082Z 5 [Note] [MY-010454] [Server] A temporary password is
generated for root@localhost: jJc5X&<rk39Z
上記の場合、jJc5X&<rk39Z が root@localhost ユーザーのパスワードです。
mysql_secure_installation
mysql_secure_installation
とは、最低限のセキュリティ設定を行うコマンドです。
実運用の MySQL を構築した際は必ず実行する、云わば お作法 的なものです。
mysql_secure_installation
では、以下のことを実行してくれます。
- root ユーザーのパスワードの変更
- VALIDATE PASSWORD プラグインのインストール
- ポリシーに沿った root ユーザーパスワードの設定 (VALIDATE PASSWORD プラグインの場合)
- anonymous ユーザーの削除
- リモートホストから root ユーザーでログインするのを禁止する
- testデータベースの削除 (存在する場合)
対話式なので、基本的に Yes(y) か No(n) で答えれば問題ありません。
Securing the MySQL server deployment.
Enter password for user root: 初期パスワードを入力
The existing password for the user account root has expired. Please set a new password.
New password: 新しいパスワードを入力
Re-enter new password: 再度、新しいパスワードを入力
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password: パスワードポリシーにあう新しいパスワードを入力
Re-enter new password: 再度、新しいパスワードを入力
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
認証方式の変更
MySQL 8.0.4 以降では、認証方式が caching_sha2_password
に変更されています。
これまでと同様の認証方式 mysql_native_password
を採用するために、設定ファイルの
[mysqld] に設定を追加します。
※これは、実際の運用と照らし合わせ、必要に応じて、実施してください。
# 以下の行を追加して、認証方式を mysql_native_password に変更
default-authentication-plugin=mysql_native_password
Discussion