CentOS7にyumでMySQL5.7最新版をインストールする
MySQL5.7でレプリケーションや高可用性構成などを検証する機会に恵まれました。
備忘録として手順や検証結果を残していこうと思いますが、はじめに検証に使った環境のMySQLのインストール手順をまとめます。
環境
サーバー
・ESXi6.5仮想サーバー
・RAM:2GB、HDD:16GB(シンプロビジョニング)、NIC:1枚
OS
・CentOS Linux release 7.4.1708 (Core)
→ minimalでインストールし、最低限のネットワーク設定のみ実施済
手順
rootで作業しています。必要に応じてsudoを付けて実行してください。
1. MySQL公式Yumリポジトリの情報のインストール
インストールするRPMパッケージは、下記のURLから最新版のファイル名を確認してコマンドを置き換えてください。
https://dev.mysql.com/downloads/repo/yum/
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
真っ先にyum remove mariadb-libs
している手順をよく見かけますが、上記パッケージをインストールするとMySQLインストール時にmysql-libsと置換してくれるので削除不要です。削除した場合、依存性の関係でpostfixが削除されますのでご注意を。
2018/5/10補記 MySQL8.0GA以降の追加手順
2018/4/19にMySQL8.0がGAになり、上記リンクの最新のMySQL公式YumリポジトリからはデフォルトでMySQL8.0が導入されるようになりました。
引き続き、MySQL5.7をインストールしたい場合、下記の手順でMySQL8.0リポジトリの無効化とMySQL5.7リポジトリの有効化を行います。
# 公式リポジトリ情報ファイルのインストール(上記手順と同じ) yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm # yum-utilsのインストール yum install yum-utils # MySQL8.0リポジトリの無効化 yum-config-manager --disable mysql80-community # MySQL5.7リポジトリの有効化 yum-config-manager --enable mysql57-community # mysql-communityの定義ファイルの確認 cat /etc/yum.repos.d/mysql-community.repo
2. MySQL のインストール
yum install mysql-community-server
以下のパッケージがインストールまたは置換されました。
インストール: mysql-community-libs.x86_64 0:5.7.21-1.el7 mysql-community-libs-compat.x86_64 0:5.7.21-1.el7 mysql-community-server.x86_64 0:5.7.21-1.el7 依存性関連をインストールしました: mysql-community-client.x86_64 0:5.7.21-1.el7 mysql-community-common.x86_64 0:5.7.21-1.el7 net-tools.x86_64 0:2.0-0.22.20131004git.el7 perl.x86_64 4:5.16.3-292.el7 perl-Carp.noarch 0:1.26-244.el7 perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7 perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-2.el7 perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7 perl-Pod-Escapes.noarch 1:1.04-292.el7 perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-4.el7 perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7 perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-292.el7 perl-macros.x86_64 4:5.16.3-292.el7 perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7 置換: mariadb-libs.x86_64 1:5.5.56-2.el7
3. 必要に応じて/etc/my.cnfの編集
ここでは特に編集していません。
データディレクトリやエラーログ(mysqld.log)の出力先をカスタマイズしたい場合、このタイミングで編集します。レプリケーション構成にしたい場合でも、このタイミングではバイナリログやGTIDの設定はデフォルトのまま無効とします。
4. MySQL Serverの初回起動
systemctl start mysqld.service
問題がなければ特にメッセージは返りません。
5. temporary passwordの確認とパスワード変更
初期パスワードと必要に応じてUUIDを確認します。
grep 'A temporary password' /var/log/mysqld.log grep UUID /var/log/mysqld.log
上で確認したパスワードでmysqlにログインします。
mysql -u root -p
MySQLのrootユーザのパスワードを設定します。
mysql> SET PASSWORD='********';
インストールされた環境の構成
以下のような構成になりました。その他の詳細は以下のリンク先をご覧ください。 https://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html#mysql-installation-layout-linuxrpm
パス | |
---|---|
オプションファイル | /etc/my.cnf |
データディレクトリ | /var/lib/mysql/ |
エラーログ | /var/log/mysqld.log |
Pidファイル | /var/run/mysql/mysqld.pid |
Socket | /var/lib/mysql/mysql.sock |