ひとつまえの日記の続きです。
最近、MySQL のインストールは rpm(CentOS)、あるいは MySQL Installer(Windows)に頼りっきりで、手動インストールからも、すっかり遠ざかっておりました。そんな折に、簡潔でシンプル*1な yoku0825さんの記事に助けられて、そして年末に「AWS触ってみてよ」と推してくれた方のおかげで、環境と時間と情報とやる気が一気にフルハウス。
さほど大きな苦労もせずに、久々にビルドに成功した*2のに気をよくして、同じマシン(OS)上に複数の MySQLサーバを立ち上げるのをやってみました。
ひとつ前の日記( http://sakaik.hateblo.jp/entry/20170103/build_mysql ) の続きです。ひとつ前の日記では、MySQL 5.6.35 をソースコードからビルドして起動しました。
今回やりたいこと
すでに MySQL 5.6.35が動作している環境(port=15635) に、新たに MySQL 5.6.34 をビルドして、port=15634 で動作させる。
プラス、起動方法をちょっと楽にする工夫も。
MySQL 5.6.34 のビルドとインストール
ひとつ前の日記と同様にして、MySQL 5.6.34のソースコードを取得、cmake/make してインストールする。
$ cd ~/mysql $ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz $ tar xvf mysql-5.6.34.tar.gz $ cd mysql-5.6.34 $ cmake -DCMAKE_INSTALL_PREFIX=/home/ec2-user/mysql/mysql5634 -DBUILD_CONFIG=mysql_release . $ make $ make install
後続の作業のために、MySQL 5.6.34をインストールしたフォルダに移動しておきましょう。
$ cd ../mysql5634
mysqld の起動
MySQL 5.6.35をビルドして起動した時には、mysql_safe にsocketやらportやらを指定するパラメタを長々と書きました。毎回そんなことをするのは面倒なので、今回は my.cnf へ記述しておくことにします。
まず、データファイルのインストール(作成)から。
$ ./scripts/mysql_install_db --datadir=./data
mysql_install_db を実行すると、当フォルダ(ここでは ~/mysql/mysql5634/)に my.cnf ファイルも作成されます。これを編集します。
ポート、ソケット、データディレクトリ類の指定、およびキャラクタセットの設定もしておきます。
$ vi my.cnf ---- [mysqld] basedir = /home/ec2-user/mysql/mysql5634 datadir = /home/ec2-user/mysql/mysql5634/data port = 15634 server_id = 5634 socket = /tmp/mysql5634.sock character-set-server=utf8 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqladmin] socket = /tmp/mysql5634.sock [mysql] socket = /tmp/mysql5634.sock port = 15634 default-character-set=utf8 ----
MySQL 5.6.34サーバの起動。カレントフォルダにある my.cnf を読み込んでくれるので、これだけで十分(ひとつ前の日記と見比べてください)*3。
$ ./bin/mysqld_safe &
mysqlコマンドラインクライアントから接続してみます。カレントの my.cnf を自動で読み込んでくれるわけではないようで*4、defaults-file パラメタで my.cnf ファイルを指定します。
$ bin/mysql --defaults-file=./my.cnf -uroot
2つのバージョンを立ち上げて、mysqlクライアントから接続して、statusを確認したところ。5.6.35のほうは キャラクタセットを指定していないので、サーバ側 latin1 になっています。my.cnf で指定した 5.6.34のほうは utf8になっていますね。
ちなみに、MySQLサーバの停止は、mysqladmin を使用します。
$ ./bin/mysqladmin --defaults-file=./my.cnf shutdown -uroot
参考: 過去の MySQLビルド関係記事(deplicated):
Windows上でのMySQLビルド方法・MySQL5.6+VC2010Express 編 - sakaikの日々雑感~(T)編
Windows上でのMySQLビルド方法まとめ - sakaikの日々雑感~(T)編
初めて MySQL 5.1 をビルドしてみた。 - sakaikの日々雑感~(T)編