手頃なRDBMSといえばみんな大好きMySQLです。
今回はLinux(CentOS7)に、MySQL5.7をインストールする手順を紹介します。
※MySQL8.0のインストール手順については以下をご参照ください。
インストール対象OS
今回はCentOS7.7にインストールします。Red Hat Enterprise LinuxやOracle linuxも同じ手順になります。
[root@cent77 ~]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
インストール対象MySQLバージョン
MySQL 5.7
MySQL5.7のRPMをダウンロード
MySQL5.7のRPMファイルをダウンロードするために、以下のサイトにアクセスします。
- Select Version: MySQLのバージョンは 5.7.xx を選択します。
- Select Operationg system: インストール対象OSは「Red Hat Enterprise Linux / Oracle Linux」を選択。
- Select OS Version: OSバージョンは「Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)」を選択。
- Download Packages: RPM Bundle の 「Download」をクリックします。
次のダウンロードページに進んだら、Login や Sing UP はせずに、下の「No thanks, just start my download.」をリクックします。RPMをまとめたbundle tarファイルのダウンロードが開始されます。
MySQL5.7のRPM Bundleの配置と解凍
ダウンロードしたMySQL5.7のRPM Bundleファイルをサーバに転送します。
今回はサーバの /tmp ディレクトリにRPM Bundleファイルを転送しました。
[root@cent77 ~]# cd /tmp
[root@cent77 tmp]# ls -l mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 545832960 3月 29 2020 mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
tarコマンドで解凍します。
[root@cent77 tmp]# tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm
mysql-community-test-5.7.29-1.el7.x86_64.rpm
mysql-community-embedded-5.7.29-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm
mysql-community-libs-5.7.29-1.el7.x86_64.rpm
mysql-community-client-5.7.29-1.el7.x86_64.rpm
mysql-community-server-5.7.29-1.el7.x86_64.rpm
mysql-community-devel-5.7.29-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
mysql-community-common-5.7.29-1.el7.x86_64.rpm
[root@cent77 tmp]#
Bundleファイルが解凍され、MySQL5.7インストール用のRPMファイルが存在することを確認します。
[root@cent77 tmp]# ls -l *.rpm
-rw-r--r-- 1 7155 31415 27768112 12月 19 17:12 mysql-community-client-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 318972 12月 19 17:12 mysql-community-common-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4085448 12月 19 17:12 mysql-community-devel-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 47521016 12月 19 17:12 mysql-community-embedded-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23354680 12月 19 17:12 mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 131015588 12月 19 17:12 mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 2596180 12月 19 17:12 mysql-community-libs-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1353080 12月 19 17:12 mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 183618644 12月 19 17:12 mysql-community-server-5.7.29-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 124193252 12月 19 17:12 mysql-community-test-5.7.29-1.el7.x86_64.rpm
MySQL5.7インストール前の作業
CentOS7からMariaDBが標準のDBになっているので、以下のMariaDBのライブラリを削除しないとMySQLはインストールできません。
[root@cent77 tmp]# rpm -qa |grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
yum removeコマンドで関連パッケージと共に削除します。
[root@cent77 tmp]# yum remove -y mariadb-libs
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.64-1.el7 を 削除
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ postfix.x86_64 2:2.10.1-7.el7 を 削除
--> 依存性解決を終了しました。
依存性を解決しました
========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
削除中:
mariadb-libs x86_64 1:5.5.64-1.el7 @anaconda 4.4 M
依存性関連での削除をします:
postfix x86_64 2:2.10.1-7.el7 @anaconda 12 M
トランザクションの要約
========================================================================================================================
削除 1 パッケージ (+1 個の依存関係のパッケージ)
インストール容量: 17 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
削除中 : 2:postfix-2.10.1-7.el7.x86_64 1/2
削除中 : 1:mariadb-libs-5.5.64-1.el7.x86_64 2/2
検証中 : 1:mariadb-libs-5.5.64-1.el7.x86_64 1/2
検証中 : 2:postfix-2.10.1-7.el7.x86_64 2/2
削除しました:
mariadb-libs.x86_64 1:5.5.64-1.el7
依存性の削除をしました:
postfix.x86_64 2:2.10.1-7.el7
完了しました!
MySQL5.7のインストール
先程解凍したMySQL5.7のRPMを yum localinstallコマンドでインストールします。
(私の環境の場合、perl-Data-Dumperとperl-JSONが依存パッケージとして不足していたので、CentOS7のDVD(インストールメディア)をマウントしてインストールしました。)
[root@cent77 tmp]# yum localinstall mysql-community-*
読み込んだプラグイン:fastestmirror, langpacks
mysql-community-client-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-client-5.7.29-1.el7.x86_64
mysql-community-client-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-common-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-common-5.7.29-1.el7.x86_64
mysql-community-common-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-devel-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-devel-5.7.29-1.el7.x86_64
mysql-community-devel-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-embedded-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-embedded-5.7.29-1.el7.x86_64
mysql-community-embedded-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-embedded-compat-5.7.29-1.el7.x86_64
mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-embedded-devel-5.7.29-1.el7.x86_64
mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-libs-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-libs-5.7.29-1.el7.x86_64
mysql-community-libs-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-libs-compat-5.7.29-1.el7.x86_64
mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-server-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-server-5.7.29-1.el7.x86_64
mysql-community-server-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
mysql-community-test-5.7.29-1.el7.x86_64.rpm を調べています: mysql-community-test-5.7.29-1.el7.x86_64
mysql-community-test-5.7.29-1.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-common.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-devel.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-embedded.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-embedded-compat.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-embedded-devel.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-libs.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-libs-compat.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-server.x86_64 0:5.7.29-1.el7 を インストール
---> パッケージ mysql-community-test.x86_64 0:5.7.29-1.el7 を インストール
--> 依存性の処理をしています: perl(Data::Dumper) のパッケージ: mysql-community-test-5.7.29-1.el7.x86_64
Loading mirror speeds from cached hostfile
* c7-media:
c7-media | 3.6 kB 00:00:00
--> 依存性の処理をしています: perl(Data::Dumper) のパッケージ: mysql-community-test-5.7.29-1.el7.x86_64
--> 依存性の処理をしています: perl(JSON) のパッケージ: mysql-community-test-5.7.29-1.el7.x86_64
--> 依存性の処理をしています: perl(JSON) のパッケージ: mysql-community-test-5.7.29-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ perl-Data-Dumper.x86_64 0:2.145-3.el7 を インストール
---> パッケージ perl-JSON.noarch 0:2.59-2.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
========================================================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
========================================================================================================================
インストール中:
mysql-community-client x86_64 5.7.29-1.el7 /mysql-community-client-5.7.29-1.el7.x86_64 103 M
mysql-community-common x86_64 5.7.29-1.el7 /mysql-community-common-5.7.29-1.el7.x86_64 2.8 M
mysql-community-devel x86_64 5.7.29-1.el7 /mysql-community-devel-5.7.29-1.el7.x86_64 20 M
mysql-community-embedded x86_64 5.7.29-1.el7 /mysql-community-embedded-5.7.29-1.el7.x86_64 200 M
mysql-community-embedded-compat x86_64 5.7.29-1.el7 /mysql-community-embedded-compat-5.7.29-1.el7.x86_64 88 M
mysql-community-embedded-devel x86_64 5.7.29-1.el7 /mysql-community-embedded-devel-5.7.29-1.el7.x86_64 885 M
mysql-community-libs x86_64 5.7.29-1.el7 /mysql-community-libs-5.7.29-1.el7.x86_64 9.7 M
mysql-community-libs-compat x86_64 5.7.29-1.el7 /mysql-community-libs-compat-5.7.29-1.el7.x86_64 6.2 M
mysql-community-server x86_64 5.7.29-1.el7 /mysql-community-server-5.7.29-1.el7.x86_64 765 M
mysql-community-test x86_64 5.7.29-1.el7 /mysql-community-test-5.7.29-1.el7.x86_64 664 M
依存性関連でのインストールをします:
perl-Data-Dumper x86_64 2.145-3.el7 c7-media 47 k
perl-JSON noarch 2.59-2.el7 c7-media 96 k
トランザクションの要約
========================================================================================================================
インストール 10 パッケージ (+2 個の依存関係のパッケージ)
合計容量: 2.7 G
総ダウンロード容量: 143 k
インストール容量: 2.7 G
Is this ok [y/d/N]: y
Downloading packages:
警告: /media/cdrom/Packages/perl-Data-Dumper-2.145-3.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
perl-Data-Dumper-2.145-3.el7.x86_64.rpm の公開鍵がインストールされていません
------------------------------------------------------------------------------------------------------------------------
合計 1.4 MB/s | 143 kB 00:00:00
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-7.1908.0.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : mysql-community-common-5.7.29-1.el7.x86_64 1/12
インストール中 : mysql-community-libs-5.7.29-1.el7.x86_64 2/12
インストール中 : mysql-community-client-5.7.29-1.el7.x86_64 3/12
インストール中 : mysql-community-server-5.7.29-1.el7.x86_64 4/12
インストール中 : mysql-community-devel-5.7.29-1.el7.x86_64 5/12
インストール中 : mysql-community-embedded-5.7.29-1.el7.x86_64 6/12
インストール中 : perl-Data-Dumper-2.145-3.el7.x86_64 7/12
インストール中 : perl-JSON-2.59-2.el7.noarch 8/12
インストール中 : mysql-community-test-5.7.29-1.el7.x86_64 9/12
インストール中 : mysql-community-embedded-devel-5.7.29-1.el7.x86_64 10/12
インストール中 : mysql-community-libs-compat-5.7.29-1.el7.x86_64 11/12
インストール中 : mysql-community-embedded-compat-5.7.29-1.el7.x86_64 12/12
検証中 : mysql-community-embedded-compat-5.7.29-1.el7.x86_64 1/12
検証中 : mysql-community-common-5.7.29-1.el7.x86_64 2/12
検証中 : mysql-community-libs-5.7.29-1.el7.x86_64 3/12
検証中 : perl-JSON-2.59-2.el7.noarch 4/12
検証中 : perl-Data-Dumper-2.145-3.el7.x86_64 5/12
検証中 : mysql-community-test-5.7.29-1.el7.x86_64 6/12
検証中 : mysql-community-client-5.7.29-1.el7.x86_64 7/12
検証中 : mysql-community-server-5.7.29-1.el7.x86_64 8/12
検証中 : mysql-community-embedded-devel-5.7.29-1.el7.x86_64 9/12
検証中 : mysql-community-libs-compat-5.7.29-1.el7.x86_64 10/12
検証中 : mysql-community-devel-5.7.29-1.el7.x86_64 11/12
検証中 : mysql-community-embedded-5.7.29-1.el7.x86_64 12/12
インストール:
mysql-community-client.x86_64 0:5.7.29-1.el7 mysql-community-common.x86_64 0:5.7.29-1.el7
mysql-community-devel.x86_64 0:5.7.29-1.el7 mysql-community-embedded.x86_64 0:5.7.29-1.el7
mysql-community-embedded-compat.x86_64 0:5.7.29-1.el7 mysql-community-embedded-devel.x86_64 0:5.7.29-1.el7
mysql-community-libs.x86_64 0:5.7.29-1.el7 mysql-community-libs-compat.x86_64 0:5.7.29-1.el7
mysql-community-server.x86_64 0:5.7.29-1.el7 mysql-community-test.x86_64 0:5.7.29-1.el7
依存性関連をインストールしました:
perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-JSON.noarch 0:2.59-2.el7
完了しました!
MySQL5.7の起動
systemctlコマンドでMySQL5.7を起動します。
[root@cent77 tmp]# systemctl start mysqld.service
ステータスを確認し、active (running) であることを確認します。
[root@cent77 tmp]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2020-03-29 14:27:09 JST; 9s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1461 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 1412 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1464 (mysqld)
CGroup: /system.slice/mysqld.service
mq1464 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
3月 29 14:26:55 cent77 systemd[1]: Starting MySQL Server...
3月 29 14:27:09 cent77 systemd[1]: Started MySQL Server.
MySQL5.7のrootユーザの初期パスワード変更
初期パスワードを変更しないとデータベースの操作が何も出来ず、以下のメッセージでパスワード変更を促されるので、MySQLのrootユーザの初期パスワードを変更します。
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysqld.log(エラーログ)からMySQLのrootユーザ初期パスワードを確認します。赤文字の部分が初期パスワードです。
[root@cent77 ]# grep 'temporary password' /var/log/mysqld.log
2020-03-29T05:26:57.658304Z 1 [Note] A temporary password is generated for root@localhost: sfTyLiso<6rt
MySQLのrootユーザで接続します。上記で確認した初期パスワードを入力します。
[root@cent77 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.29
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
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>
MySQLのrootユーザ初期パスワードを変更します。
mysql> ALTER USER 'root'@'localhost' identified BY 'dekiruMySQL8#';
Query OK, 0 rows affected (0.00 sec)
パスワードを変更するとデータベースの操作ができるようになります。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQLの動作確認
動作確認として、データベースを作成してみます。
mysql> create database dekirudb;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dekirudb |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
以上で、CentOS7へのMySQL5.7のインストール作業は完了です。