【MySQL】5.7.9 ソースからのコマンド最短インストール方法

2015年10月30日 現在

・バージョンは 5.7.9 ですが、マイナーバージョン等でも問題なくインストールできると思います。
・必要最低限のインストール方法なのでセッティング等は必要に応じてご設定ください。
・コンパイル時に数ギガの領域が必要になりますので空き容量にご注意ください。
(体感では 5G 〜 10G 位 は必要そうです。)
・少々スペック悪い環境では make に数時間掛かりますので気長なに待ちましょう。

■ OS環境

CentOS 7

■ ソースダウンロード、コンパイル先

/usr/local/src/

■ インストールディレクトリ

/usr/local/mysql-5.7.9

※ DCMAKE_INSTALL_PREFIX にて明示的に上記ディレクトリをしていしています。
※ インストール後にシンボリックリンクにて下記で運用すると複数のバージョンを確認でき、バージョンアップ時にスムーズになるでしょう。

ln -s /usr/local/mysql-5.7.9 /usr/local/mysql

インストール完了後でないとフォルダが存在しないため、実行できないので、最後に貼りましょう。

■ インストール

1.コンパイル用事前インストールモジュール
コンパイル時に下記のコマンド、モジュールが必要になりますので未インストールの場合は、yum 等でインストールしておきましょう。

yum -y install wget
yum -y install cmake
yum -y install gcc-c++
yum -y install zlib-devel
yum -y install ncurses-devel

同時にインストールする場合は下記コマンドを実行しましょう。

yum -y install wget cmake gcc-c++ zlib-devel ncurses-devel

2.ダウンロード、解凍
・ダウンロード先へ移動

cd /usr/local/src/

・ソースを取得

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9.tar.gz
tar zxvf mysql-5.7.9.tar.gz
cd mysql-5.7.9

3.コンパイルとインストール

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.9 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/tmp/boost
------------------------------------------------------------
DCMAKE_INSTALL_PREFIX:インストール先の指定
DDEFAULT_CHARSET:デフォルトのキャラクタセットを指定
DDEFAULT_COLLATION:The default server collation
DDOWNLOAD_BOOST Boost:C++ Libraries が 5.7 より必須になります。ダウンロードする場合はオプション必須です。
DWITH_BOOST:Boost ダウンロード作業用ディレクトリ

■ 詳しいオプションについては下記参照
http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.7/en/source-configuration-options.html

■ cmake 中にエラーが発生した場合
— Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:64 (MESSAGE):
Curses library not found. Please install appropriate package,

yum -y install ncurses-devel

※ cmake が途中で失敗し、対応後に再度 cmake を実行する場合は下記のキャッシュを削除しないと再度同じエラーが発生することがあります。

rm CMakeCache.txt

で一度キャッシュを削除しましょう。

make
make install

4.初期設定
・mysql のグループを作成します。

groupadd mysql

・mysq ユーザを作成します。

useradd -r -g mysql mysql

・my.cnf の設定

mkdir /usr/local/mysql-5.7.9/etc
cp -p /usr/local/mysql-5.7.9/support-files/my-default.cnf /usr/local/mysql-5.7.9/etc/my.cnf

・DBの初期化

/usr/local/mysql-5.7.9/bin/mysql_install_db --datadir=/usr/local/mysql-5.7.9/data

※  環境によっては下記のエラーが発生する場合があります。
FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper
その時は下記のモジュールをインストールしてください。

yum install perl-Data-Dumper

・mysql ユーザへ所有権を変更

chown -R mysql:mysql /usr/local/mysql-5.7.9

5.MySQL 起動

/usr/local/mysql-5.7.9/support-files/mysql.server start

・MySQL クライアントよりログイン
5.7 より root のデフォルトでパスワードが設定されています。
自動で下記のファイルに初期のパスワードが書き込まれていますので下記でログイン後、変更しましょう。

cat /root/.mysql_secret

パスワードを打ってクライアントへログイン

/usr/local/mysql-5.7.9/bin/mysql -u root -p

6.起動できない場合
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql-5.7.9/data/ti.pid).

・MySQL が起動時に my.cnf が読み込まれますが、
読み込みの優先順位は下記にて確認できます。

mysql --help | grep -A1 "Default options"
------------------------------------------------------------
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql-5.7.9/etc/my.cnf ~/.my.cnf

よくあるのは、yum 等にて依存関係にて システム用の MySQL がインストールされ
/etc/my.cnf が作成されたり、書き換えられていることにより起動失敗をよく耳にします。
場合によっては、/etc/my.cnf を mv 等にて一時退避等をしましょう。

・my.cnf の設定に設定ミスがある。設定を見直しましょう。

タイトルとURLをコピーしました