💻

Install MySQL 8.0 on CentOS 7

2020/10/23に公開

MySQL

この記事について

本記事は、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) で答えれば問題ありません。

mysql_secure_installation (例)
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] に設定を追加します。
※これは、実際の運用と照らし合わせ、必要に応じて、実施してください。

/etc/my.cnf
# 以下の行を追加して、認証方式を mysql_native_password に変更
default-authentication-plugin=mysql_native_password

参考情報

Discussion