CentOS6へのMySQL5.6インストール方法3選

MySQL5.6環境が必要になった為、インストール手順をあれこれ試してみました。
備忘録も兼ね、実際に使えそうな手順を3つ残します。

導入先の環境

CentOS6.8(x86_64)をminimalでインストールし、事前に環境に応じたネットワーク設定とwgetを導入(※)しています。 ※yum install wget

全てrootで作業しています。適宜sudoを付けるなどしてください。

[方法1] Yumリポジトリから5.6最新版を導入(お勧め)

MySQL公式のYumリポジトリからMySQL5.6の最新版をインストールする手順です。
特に理由がない限り、この方法がお勧めです。

1.MySQL公式Yumリポジトリの情報のインストール&設定

以下のURLから、Red Hat Enterprise Linux 6用のRPMパッケージを入手します。
mysql57~.rpmしかありませんが、5.6の情報も含まれているので大丈夫です。

Download MySQL Yum Repository
https://dev.mysql.com/downloads/repo/yum/

以下の例は、調査時点(2017/4/5)のパッケージの最新版です。作業時点で確認してください。

shell> wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

続けてインストール

shell> yum localinstall ./mysql57-community-release-el6-9.noarch.rpm

以下の設定ファイルを編集して、MySQL5.7を無効、MySQL5.6を有効に変更します。

shell> vi /etc/yum.repos.d/mysql-community.repo

編集内容

[mysql56-community]
enabled=0 ⇒ enabled=1

[mysql57-community]
enabled=1 ⇒ enabled=0

2.MySQLのインストール

Yumコマンドでインストールします。

shell> yum install mysql-community-server

以下のパッケージがインストールまたは置換されました。

インストール:
  mysql-community-libs.x86_64 0:5.6.35-2.el6
  mysql-community-libs-compat.x86_64 0:5.6.35-2.el6
  mysql-community-server.x86_64 0:5.6.35-2.el6

依存性関連をインストールしました:
  mysql-community-client.x86_64 0:5.6.35-2.el6
  mysql-community-common.x86_64 0:5.6.35-2.el6
  numactl.x86_64 0:2.0.9-2.el6
  perl.x86_64 4:5.10.1-141.el6_7.1
  perl-DBI.x86_64 0:1.609-4.el6
  perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1
  perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1
  perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1
  perl-libs.x86_64 4:5.10.1-141.el6_7.1
  perl-version.x86_64 3:0.77-141.el6_7.1

置換:
  mysql-libs.x86_64 0:5.1.73-7.el6

3.MySQLの起動とパスワードの変更

MySQLのサービスを起動します。

shell> service mysqld start

MySQLにrootでログインし、パスワードを設定します。
この方法の場合のみ、初期状態ではパスワードは設定されていません。

shell> mysql -u root   
mysql> SET PASSWORD = PASSWORD('hogehoge'); 

必要に応じてmysql_secure_installationで設定を変更します。

shell> /usr/bin/mysql_secure_installation

[方法2] 過去のバージョンのRPMパッケージをYumで導入する

指定のバージョンをインストールする必要がある場合におすすめの手順です。

1.RPMパッケージの入手

以下のURLからRPMパッケージを入手します。

MySQL Community Server (Archived Versions)
https://downloads.mysql.com/archives/community/

以下の3パッケージは必須、他は必要に応じて選んでください。

以下の例では、MySQL5.6.11のパッケージのパスを確認して、wgetコマンドでダウンロードしています。

wget https://downloads.mysql.com/archives/get/file/MySQL-server-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-client-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-devel-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-shared-compat-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-shared-5.6.11-2.el6.x86_64.rpm

2.ダウンロードしたパッケージのインストール

入手したRPMパッケージの置いてある場所で実行します。

yum install ./*.rpm

以下のパッケージがインストールまたは置換されました。

インストール:
  MySQL-client.x86_64 0:5.6.11-2.el6         MySQL-devel.x86_64 0:5.6.11-2.el6
  MySQL-server.x86_64 0:5.6.11-2.el6         MySQL-shared.x86_64 0:5.6.11-2.el6
  MySQL-shared-compat.x86_64 0:5.6.11-2.el6

依存性関連をインストールしました:
  perl.x86_64 4:5.10.1-141.el6_7.1
  perl-Module-Pluggable.x86_64 1:3.90-141.el6_7.1
  perl-Pod-Escapes.x86_64 1:1.04-141.el6_7.1
  perl-Pod-Simple.x86_64 1:3.13-141.el6_7.1
  perl-libs.x86_64 4:5.10.1-141.el6_7.1
  perl-version.x86_64 3:0.77-141.el6_7.1

置換:
  mysql-libs.x86_64 0:5.1.73-7.el6

3.MySQLの起動とパスワードの変更

MySQLのサービスを起動します。

shell> service mysqld start

rootの初期パスワードを確認します。

shell> cat /root/.mysql_secret

rootでログインし、パスワードを変更します。

shell> mysql -u root -p
    
mysql> SET PASSWORD = PASSWORD('hogehoge');

必要に応じてmysql_secure_installationで設定を変更します。

shell> /usr/bin/mysql_secure_installation

[方法3] PRMパッケージを個別にインストールする

インターネット接続できない環境でのインストールなどに応用できます。今回の確認環境はインターネット接続がある環境で、一部Yumも使っています。 この方法の場合、RPMパッケージの導入順序を意識したり、/etc/my.cnfの設置・設定も必要になります。

この手順は、以下の公式ドキュメントを参考にしています。

2.5.5 RPM パッケージを使用して MySQLLinux にインストールする
https://dev.mysql.com/doc/refman/5.6/ja/linux-installation-rpm.html

1.RPMパッケージの入手

以下のURLからRPMパッケージを入手します。

MySQL Community Server (Archived Versions)
https://downloads.mysql.com/archives/community/

以下の3パッケージは必須、他は必要に応じて選んでください。

以下の例では、MySQL5.6.11のパッケージのパスを確認して、wgetコマンドでダウンロードしています。

wget https://downloads.mysql.com/archives/get/file/MySQL-server-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-client-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-devel-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-shared-compat-5.6.11-2.el6.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/MySQL-shared-5.6.11-2.el6.x86_64.rpm

2.MySQL-shared-compatのインストール

CentOS6標準のmysql-libs(クライアントライブラリ)の互換ライブラリです。これを先にインストールする点が重要です。

rpm -ivh MySQL-shared-compat-5.6.11-2.el6.x86_64.rpm

3.mysql-libsの削除

MySQL公式ドキュメントによると、MySQL-shared-compatがmysql-libsは無効にするので、削除しなくても共存できるそうです。 今回は、Yumを使って、削除しています。

yum remove mysql-libs

4.依存性の解決

入手したRPMパッケージの置いてある場所で実行します。

rpm -ivh --test ./*.rpm

以下の様に前提パッケージが表示されるので全てインストールします。
今回の環境では、perlを導入(※)しています。
yum install perl

エラー: 依存性の欠如:
        /usr/bin/perl は MySQL-client-5.6.11-2.el6.x86_64 に必要とされています
        /usr/bin/perl は MySQL-server-5.6.11-2.el6.x86_64 に必要とされています
        perl は MySQL-test-5.6.11-2.el6.x86_64 に必要とされています

5.残りのMySQLのパッケージの導入

最低限必要なのは、MySQL-serverとMySQL-clientです。その他は要件に合わせて導入します。

rpm -ivh MySQL-server-5.6.11-2.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.11-2.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.11-2.el6.x86_64.rpm
rpm -ivh MySQL-shared-5.6.11-2.el6.x86_64.rpm

6./etc/my.cnfの作成

テンプレートをコピーして、最低限必要な箇所を設定します。

cp -p /usr/share/mysql/my-default.cnf /etc/my.cnf
vi /etc/my.cnf

編集箇所は、5.6.11の場合、18行目からの部分です。

編集前

 # basedir = .....
 # datadir = .....
 # port = .....
 # server_id = .....
 # socket = .....

編集後

 basedir = /usr
 datadir = /var/lib/mysql
 port = 3306
 server_id = 2
 socket = /var/lib/mysql/mysql.sock

7.MySQLの起動とパスワードの変更

MySQLのサービスを起動します。

shell> service mysqld start

rootの初期パスワードを確認します。

shell> cat /root/.mysql_secret

rootでログインし、パスワードを変更します。

shell> mysql -u root -p
mysql> SET PASSWORD = PASSWORD('hogehoge');

必要に応じてmysql_secure_installationで設定を変更します。

shell> /usr/bin/mysql_secure_installation