MySQLで複数バージョンを使い分ける方法
複数バージョンのテストするときに、なるだけミニマルにそれぞれを使い分けたかったのでメモ。
そんなに難しくないです。
ちなみにmysqlenvというMySQL環境管理ツールを作っている方もたくさんいらっしゃいます。
インストールとかを簡単にしたい人はこちらも併せてご確認ください。
https://github.com/xaicron/mysqlenv
https://github.com/shim0mura/mysqlenv
MySQL Download
from http://dev.mysql.com/downloads/mysql/
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz/from/http://cdn.mysql.com/ $ tar zxvf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz $ mv mysql-5.6.12-linux-glibc2.5-x86_64 mysql-5.6.12 $ cd mysql-5.6.12
私はだいたいLinux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive使ってます。
コンパイルするのめんどいから(´・ω・`)
my.cnf
$ cp ./support-file/my-default.cnf ./my.cnf $ vim my.cnf
port = 5612 user = mysql basedir = /path/to/mysql-5.6.12 datadir = /path/to/mysql-5.6.12/data tmpdir = /path/to/mysql-5.6.12/tmp socket = /path/to/mysql-5.6.12/tmp/mysql.sock pid-file = /path/to/mysql-5.6.12/logs/mysqld.pid log-error = /path/to/mysql-5.6.12/logs/mysqld
まぁ、パスを自分のディレクトリ配下にしちゃいましょう。
この場合、tmpとlogsも作っちゃってます。
んで、ポートとソケットを指定します。
これらを通じてクライアント・サーバ通信が行われます。
つまりこれらがそれぞれのバーションでかぶってなければ、同時起動してもいけると。
あとのmy.cnfはお好みで。
mysqld_safe
$ /path/to/mysql-5.6.12/bin/mysqld_safe \ --default-file=/path/to/mysql-5.6.12/my.cnf &
-
- default-fileオプションでmy.cnfの場所を指定します。
これがないと/etc/my.cnfを読み込んじゃうようです。
さらにはこのオプションは他のオプションよりも前、つまり先頭にないと機能しないらしいですね。
他のオプションつけるときは注意。
まぁ、my.cnfの中でひと通り指定しちゃえば、こんなけでおk。