CentOS 7  MySQL8.0 インストールと設定方法(CentOS 7.5)

2018年6月26日CentOS 7, Linux

CentOS 7にMySQL8.0をインストールします。

MySQLインストール

yumリポジトリの追加

CentOS 7にyumリポジトリを追加します。
ルートにログインし、yumリポジトリが格納されているディレクトリへ移動します。

# cd /etc/yum.repos.d

現在のリポジトリを確認します。

# ll
合計 72
-rw-r–r–. 1 root root 1664   5月 17 22:53 CentOS-Base.repo
-rw-r–r–. 1 root root 1309   5月 17 22:53 CentOS-CR.repo
-rw-r–r–. 1 root root   649   5月 17 22:53 CentOS-Debuginfo.repo
-rw-r–r–. 1 root root   630   5月 17 22:53 CentOS-Media.repo
-rw-r–r–. 1 root root 1331   5月 17 22:53 CentOS-Sources.repo
-rw-r–r–. 1 root root 4768   5月 17 22:53 CentOS-Vault.repo
-rw-r–r–. 1 root root  314    5月 17 22:53 CentOS-fasttrack.repo
-rw-r–r– 1 root root       0 10月 3    2017 epel-testing.repo
-rw-r–r– 1 root root       0 10月 3    2017 epel.repo
-rw-r–r– 1 root root   446   6月 19 17:28 remi-glpi91.repo
-rw-r–r– 1 root root   446   6月 19 17:28 remi-glpi92.repo
-rw-r–r– 1 root root   446   6月 19 17:28 remi-glpi93.repo
-rw-r–r– 1 root root   456   6月 19 17:28 remi-php54.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php70.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php71.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php72.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php73.repo
-rw-r–r– 1 root root   750   6月 19 17:28 remi-safe.repo
-rw-r–r– 1 root root 2605   6月 19 17:28 remi.repo

MySQLの公式サイトから MySQL8.0のCentOS 7用yumリポジトリのダウンロードします。

# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

※yumリポジトリのダウンロードURLは、MySQL公式サイトより最新情報を取得して下さい。

  1. MySQL公式サイトにアクセス
  2. ページ下部に、OS毎のyumリポジトリの一覧があるので、「Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package」のDownloadボタンをクリック
  3. 「No thanks, just start my download.」のリンク上で、右クリックして「リンクのアドレスをコピー(E)」を選択

リポジトリが追加されたかを再度確認します。

# ll
合計 80
-rw-r–r–. 1 root root 1664   5月 17 22:53 CentOS-Base.repo
-rw-r–r–. 1 root root 1309   5月 17 22:53 CentOS-CR.repo
-rw-r–r–. 1 root root   649   5月 17 22:53 CentOS-Debuginfo.repo
-rw-r–r–. 1 root root   630   5月 17 22:53 CentOS-Media.repo
-rw-r–r–. 1 root root 1331   5月 17 22:53 CentOS-Sources.repo
-rw-r–r–. 1 root root 4768   5月 17 22:53 CentOS-Vault.repo
-rw-r–r–. 1 root root  314    5月 17 22:53 CentOS-fasttrack.repo
-rw-r–r– 1 root root       0 10月 3    2017 epel-testing.repo
-rw-r–r– 1 root root       0 10月 3    2017 epel.repo
-rw-r–r– 1 root root 1036 10月 16   2015 mysql-community-source.repo
-rw-r–r– 1 root root 1033 10月 16   2015 mysql-community.repo
-rw-r–r– 1 root root   446   6月 19 17:28 remi-glpi91.repo

-rw-r–r– 1 root root   446   6月 19 17:28 remi-glpi92.repo
-rw-r–r– 1 root root   446   6月 19 17:28 remi-glpi93.repo
-rw-r–r– 1 root root   456   6月 19 17:28 remi-php54.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php70.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php71.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php72.repo
-rw-r–r– 1 root root 1314   6月 19 17:28 remi-php73.repo
-rw-r–r– 1 root root   750   6月 19 17:28 remi-safe.repo
-rw-r–r– 1 root root 2605   6月 19 17:28 remi.repo

「mysql-」で始まるファイルが2つ追加されているのが確認できればリポジトリの追加はOKです。

 

MySQLのインストール

MySQLをインストールします

# yum install mysql-community-server

 

MySQLのバージョンを確認

MySQLのバージョンを確認します。

# mysql –version
mysql Ver 8.0.11  for Linux on x86_64 (MySQL Community Server – GPL)

MySQL8.0がインストールされているのが確認出来ました。

インストールしたパッケージが指定したバージョンであるかを確認します。

# rpm -qa | grep mysql
mysql-community-common-8.0.11-1.el7.x86_64
php-mysqlnd-7.1.19-1.el7.remi.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-libs-compat-8.0.11-1.el7.x86_64
mysql-community-server-8.0.11-1.el7.x86_64
mysql80-community-release-el7-7.noarch
mysql-community-client-8.0.11-1.el7.x86_64

MySQL8.0のインストールが完了しました。

 

MySQLの起動

MySQLを起動します。

# systemctl start mysqld

起動確認します。

# systemctl status mysqld
mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 水 2018-06-27 13:24:35 JST; 8h ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 1712 (mysqld)
Tasks: 27
CGroup: /system.slice/mysqld.service
└─1712 /usr/sbin/mysqld –daemonize –pid-file=/var/run/mysqld/mysqld.pid6月 27 13:24:08 localhost.localdomain systemd[1]: Starting MySQL Server…
6月 27 13:24:35 localhost.localdomain systemd[1]: Started MySQL Server.

 

MySQLの自動起動設定

MySQLの自動起動の設定をします。

# systemctl enable mysqld

自動起動設定の確認します。

# systemctl is-enabled mysqld
enabled

「enabled」になっていれば、設定は完了です。

 

MySQLの初期設定

インストール直後は、ランダムな root パスワードが設定されています。
パスワードはログで確認できるので次のコマンドでlogを見てみます。

# grep 'temporary password’ /var/log/mysqld.log
2018-06-20T10:54:28.112789Z 1 [Note] A temporary password is generated for root@localhost: lfseasjg)3Xgx

root@localhost: の後に表示されているのが、設定されているrootパスワードになります。

次に、rootパスワードを変更するのですが、MySQLのパスワードにはパスワードポリシーというものがありパスワードの文字数、大文字小文字などルールが決められています。
デフォルトでは、英数字、大文字、記号(英数字以外)を含む8文字以上のパスワードとなっています。
パスワードポリシーは後ほど変更可能です。

MySQLの root パスワードの設定とその他の初期処理を行います。

# mysql_secure_installation


上記、質問は次の順で質問されます。

1. rootのパスワード  ->  logで表示されたパスワードを入力してENTER
2. rootのパスワード入力(2回)(英数字、大文字、記号(英数字以外)含む8文字以上のパスワード)
3. VALIDATE PASSWORD プラグインというプラグインを導入するか -> yと入力してEnter
(パスワードとして設定できる文字列に一定の制限をかけることができ、パスワードポリシーは3段階のレベルから設定できます。)

※VALIDATE PASSWORD プラグインは新しく導入されたプラグインで、パスワードポリシーを強化するものです。これまでの設定方法ではうまく設定 できないこともあるので、mysqlについてあまり詳しくない方は導入しなくてもいいかもしれません。

4.「LOW」= 0,「MEDIUM」= 1,「STRONG」= 2 から選択 -> 0,1,2のどれかを入力してEnter
5. パスワードを変更するか -> yと入力してEnter
6. rootのパスワード入力(2回) (パスワードポリシーに沿ったパスワード)
7. このパスワードで確定して次に進んでいいか  ->  yと入力してEnter
8. 匿名ユーザを削除するか  ->  y と入力してEnter
9. リモートからのrootログインを禁止するか  ->  y と入力してEnter
10. テスト用の’test’データベースを削除するか  ->  y と入力してEnter
11. 設定をリロードして反映するか  ->  Y と入力してEnter

 

MySQLにログイン

MySQLにログインします。

パスワードを入力してログインします。

# mysql -u root -p

以下のようになれば、ログイン成功です。

mysql>    

ここからは、パスワードポリシーを変更したい場合の設定です。
(パスワードポリシー変更次第ではセキュリティが弱くなることがあるので変更は自己責任でお願いします。)

 

パスワードポリシーの変更

パスワードポリシーを変更します。
MySQLにログインします。
現在のパスワードポリシーを確認します。

mysql> show variables like 'validate_password%’;

VALIDATE PASSWORD プラグインを導入すると以下のような画面になります。

扱いが難しくなるので、VALIDATE PASSWORD プラグインを削除します。

mysql> uninstall plugin validate_password;

再度、パスワードポリシーを確認します。

mysql> show variables like 'validate_password%’;

現状は以下のように設定されています。

  • パスワードの文字数 8以上
  • 大文字小文字 各1文字ずつ含む
  • 数字 1文字含む
  • パスワードポリシー MIDIUM
  • 特殊文字 1文字含む

「validate_password_policy」に関しての詳細は以下のようになっています。

  • LOW     長さ
  • MIDIUM  長さ; 数字、小文字/大文字、および特殊文字
  • STRONG   長さ; 数字、小文字/大文字、および特殊文字。辞書ファイル

今回は、パスワードポリシーを「LOW」、文字数を「5文字」に設定します。

mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=5;
Query OK, 0 rows affected (0.00 sec)

再度、パスワードポリシーを確認します。

mysql> show variables like 'validate_password%’;


※パスワードポリシーが「LOW」なのでパスワードの長さ(password_length)だけが有効になります。

設定変更が確認出来たら完了です。

 

パスワード再設定

パスワードを再設定します。

mysql> set password = '任意のパスワード’;
mysql> set password = 'abcde’;

パスワードが「abcde」に変更されました。

以上で、MySQL8.0のインストールと設定は完了です。

2018年6月26日CentOS 7, Linux

Posted by さなころ