首先,确认Mac已经安装了多个版本的MySQL,至于怎么安装,可以参考之前的帖子。
废话不多说,开工。
备份配置文件。
cp /etc/my.cnf /etc/my_bak.cnf
编辑配置文件,完整内容如下。
vim /etc/my.cnf
cat /etc/my.cnf
[mysqld5173]
port=5173
socket=/tmp/mysql5173.sock
basedir=/usr/local/mysql_5.1
datadir=/usr/local/mysql_5.1/data
user=mysql
log-error=/var/log/mysqld5173.log
pid-file=/tmp/mysqld5173.pid
[mysqld5612]
port=5612
socket=/tmp/mysql5612.sock
basedir=/usr/local/Cellar/mysql/5.6.21
datadir=/usr/local/Cellar/mysql/5.6.21/data
user=mysql
log-error=/var/log/mysql5612.log
pid-file=/tmp/mysqld5612.pid
启动和关闭MySQL需要使用对应版本的mysqld_multi程序,登录MySQL使用mysql命令,任意版本都可以。
/usr/local/mysql_5.1/bin/mysqld_multi start 5173
/usr/local/Cellar/mysql/5.6.21/bin/mysqld_multi start 5612
测试,登录MySQL 5.1。
mysql --socket=/tmp/mysql_5173.sock -uroot -p
Server version: 5.1.73 Source distribution
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.1.73 |
+-----------+
1 row in set (0.00 sec)
mysql> exit
Bye
测试,登录MySQL 5.6。
mysql --socket=/tmp/mysql_5612.sock -uroot -p
Server version: 5.6.21 Homebrew
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.6.21 |
+-----------+
1 row in set (0.00 sec)
我们可以查看MySQL的进程,可以看到有多个。
ps -ef | grep mysql | grep -v grep
74 69028 1 0 4:04PM ttys001 0:00.16 /usr/local/mysql_5.1/libexec/mysqld --port=5173 --socket=/tmp/mysql5173.sock --basedir=/usr/local/mysql_5.1 --datadir=/usr/local/mysql_5.1/data --user=mysql --log-error=/var/log/mysqld5173.log --pid-file=/tmp/mysqld5173.pid
74 69034 1 0 4:04PM ttys001 0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --port=5612 --socket=/tmp/mysql5612.sock --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/Cellar/mysql/5.6.21/data --user=mysql --log-error=/var/log/mysqld5612.log --pid-file=/tmp/mysqld5612.pid
当然,我们还可以使用MySQL 5.1的mysql命令。
/usr/local/mysql_5.1/bin/mysql --socket=/tmp/mysql5612.sock -uroot -p
/usr/local/mysql_5.1/bin/mysql --socket=/tmp/mysql5173.sock -uroot -p
关闭MySQL可以这样。
/usr/local/mysql_5.1/bin/mysqld_multi stop 5173
/usr/local/Cellar/mysql/5.6.21/bin/mysqld_multi stop 5612
由于我们的Mac里装了不同版本的MySQL,切换比较麻烦,我们可以玩一个优美的无缝切换。
注意:需要更改root用户的默认Shell,root用户的默认shell是sh,我们需要更改为bash,可以使用chsh命令更改。
编辑MySQL 5.1的bash配置文件,内容如下。
vim .bash_mysql_5.1
cat .bash_mysql_5.1
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql_5.1/bin:$PATH"
编辑MySQL 5.5的bash配置文件,内容如下:
vim .bash_mysql_5.6
cat .bash_mysql_5.6
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/Cellar/mysql/5.6.21/bin:$PATH"
修改bash_profile,内容如下。
cat ~/.bash_profile
alias set-m-5.1='source ~/.bash_mysql_5.1'
alias set-m-5.6='source ~/.bash_mysql_5.6'
测试。
注意:要想达到这样的效果,需要删除/usr/local/bin下的mysql所有命令。这些命令是brew安装完mysql后,自动创建的软链。
set-m-5.1
mysql --version
mysql Ver 14.14 Distrib 5.1.73, for apple-darwin13.3.0 (i386) using EditLine wrapper
set-m-5.6
mysql --version
mysql Ver 14.14 Distrib 5.6.21, for osx10.9 (x86_64) using EditLine wrapper
Enjoy!
该贴由hui.chen转至本版2014-12-1 10:01:30