[MySQL][5.7.16]インストール

環境

インストールを行った環境は、以下の通りです。

  • OS:CentOS 6.8

インストールするものは、以下です。

  • MySQL 5.7.16

MySQLのインストール

インストールパターン

MySQLのインストールには、

  1. ソースファイルからコンパイルしてインストール
  2. バイナリtar-ballからインストール
  3. rpmでインストール

という3パターンがあります。

個人的には、2. バイナリtar-ballでインストールするほうがバージョンアップなどの際に対応しやすい気がしているので、今回はこの方法でインストールします。

ダウンロード

MySQLのサイト(http://dev.mysql.com/downloads/mysql/#downloads)から、インストールファイルをダウンロードしてきます。

インストール先のOSはCentOSなので、Linux用のパッケージファイルをダウンロードしましょう。
「Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive」は全部入りのアーカイブですので、ひとまずこれをダウンロードしておきます。

ダウンロードしたファイル「mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz」は、CentOSへ転送しておきましょう。

ちなみに、wgetでもダウンロードはできます。

# cd /usr/local/src
# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

グループとユーザの作成

MySQLをインストールする前に、まずはmysqlグループとmysqlユーザを作成しておきます。
以下のように作成しました。

# groupadd mysql
# useradd -r -g mysql mysql

# grep mysql /etc/group
mysql:x:501:
# grep mysql /etc/passwd
mysql:x:501:501::/home/mysql:/bin/bash

グループIDとユーザIDは仮に 501 としていますが、環境に合わせて指定してください。

ファイルの展開

ダウンロードしたバイナリファイルを展開します。
インストール先は「/usr/local」とするので、ファイルを/usr/localへ移動させてから展開し、シンボリックリンク「/usr/local/mysql」を作成します。

# cp -ip /usr/local/src/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz /usr/local
# cd /usr/local
# tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
# ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64 mysql

初期設定

続いて、「mysql-files」ディレクトリを作成して、所有グループ・ユーザを変更します。

# cd mysql
# mkdir mysql-files
# mkdir data
# chown 755 mysql-files
# chown 755 data
# chown -R mysql .
# chgrp -R mysql .

初期インストールスクリプトを実行します。

# bin/mysqld --initialize --user=mysql
2016-10-20T09:37:48.387857Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-10-20T09:37:49.327042Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-10-20T09:37:49.492243Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-10-20T09:37:49.684684Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: dd89cc6e-96a8-11e6-a7b8-9ca3ba01cb37.
2016-10-20T09:37:49.686001Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-10-20T09:37:49.689250Z 1 [Note] A temporary password is generated for root@localhost: Wu/3NDjh&koB

この時、「[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option」というWarningメッセージが出力されました。

これは「timestamp 型の暗黙的なデフォルト値は推奨しないよ」というメッセージで、MySQL 5.6 からの仕様のようです。
以下のサイトを参考にさせていただきました。

MySQL サーバ 5.6 系でサービス起動時等に以下のような警告メッセージがログに出力されます。 TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server optio...
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp

他にもWarningメッセージがいくつか出力されていますが、これはおいおい調べてみようと思います。

最後にnoteメッセージ(「[Note] A temporary password is generated for root@localhost」の部分)として、MySQLのrootユーザの初期パスワードが出力されていますね。
これは、メモしておきましょう。

続いて、SSL関連のセットアップです。

# bin/mysql_ssl_rsa_setup
Generating a 2048 bit RSA private key
.+++
..........................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.......................................+++
...................+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
...................+++
............................................................................................................+++
writing new private key to 'client-key.pem'
-----

こちらは、エラーもなく終了です。

最後に、ディレクトリとファイルの所有ユーザを変更しておきます。

# chown -R root .
# chown -R mysql data mysql-files

共有ライブラリの設定

インストール後、MySQLの共有ライブラリを利用できるように、パスを追加しておきます。

/etc/ld.so.confを以下のように修正します。

# cat "/usr/local/mysql/lib/" >> /etc/ld.so.conf
# cat /etc/ld.so.conf
※末尾に「/usr/local/net-snmp/lib/」が追記されていればOK

ld.so.confを修正したら、ldconfigコマンドで再読み込みさせておきます。

# ldconfig

MySQLの起動

起動スクリプトの準備と自動起動設定

続いて、MySQLの起動スクリプトを準備します。
バイナリtar-ballには起動スクリプトが用意されているので、それを使います。

# pwd
/usr/local/mysql
# cp -i support-files/mysql.server /etc/init.d/mysql
# chkconfig --list | grep mysql
(なにも表示されない)
# chkconfig mysql on
# chkconfig --list | grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

設定ファイルの作成

ひとまず、最低限の設定を書いておきます。

設定ファイルは「my.cnf」ですが、どこに配置すればいいかをヘルプで確認してみると、以下のような記述がありました。

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

/etc/my.cnf → /etc/mysql/my.cnf → /usr/local/mysql/etc/my.cnf → ~/.my.cnf という順番で探していくようですね。
一般的には /etc/my.cnf が多いのかなと思いますので、/etc/my.cnf にしました。

ひとまず、以下の感じでどうかなと思いますが、必要に応じて適宜書き換えてください。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
socket=/var/lib/mysql/mysql.sock

起動!

では、起動させてみましょう。
起動スクリプトを使った起動・停止ですので、serviceコマンドで操作できます。

# service mysql start
Starting MySQL. SUCCESS!

# ps -ef | grep mysql
root 1074 1 0 21:49 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/xxxxx.pid
mysql 1252 1074 1 21:49 pts/0 00:00:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/lib/mysql/xxxxx.pid --socket=/var/lib/mysql/mysql.sock

無事に起動しました。
続いて、初期設定を行っていきます。

環境 本ページは以下の環境で実施しています。 CentOS 6.8 MySQL 5.7.16 初期設定 MySQL...
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク