有时需要在不同 MySQL 版本间做测试, 如果要在服务器内重启 MySQL 切换版本做测试会很麻烦, 以下纪录一下在服务器内安装两个 MySQL 同时运行, 当然如果有需要, 也可以按此方法安装 2 个以上的 MySQL。
以下假设第一个 MySQL Server 已经正常运作, 下面全是安装第二个 MySQL Server 的步骤:
1. 建立 MySQL 数据库目录:
# mkdir /var/lib/mysql2
# chown mysql.mysql /var/lib/mysql2
# chown mysql.mysql /var/lib/mysql2
2. 建立 my2.cnf
# cp -p /etc/my.cnf /etc/my2.cnf
3. 将 my2.cnf 的设定修改, 以免与第一个 MySQL Server 发生冲突, 最起码要修改数据库目录, socket, port, pid:
[mysqld]
datadir=/var/lib/mysql2
socket=/var/lib/mysql/mysql2.sock
port=3307
datadir=/var/lib/mysql2
socket=/var/lib/mysql/mysql2.sock
port=3307
[mysqld_safe]
log-error=/var/log/mysqld2.log
pid-file=/var/run/mysqld/mysqld2.pid
4. 初始数据库安装:
mysql_install_db –user=mysql –datadir=/var/lib/mysql2
5. 安装好第二个 MySQL Server 后, 现在启动 MySQL:
mysqld_safe –defaults-file=/etc/my2.cnf &
启动后用 netstat 检查一下埠号 3307 (上面的 my2.cnf 设定使用 3307 埠号)是否被 MySQL 使用:
netstat -tanp |grep 3337
如果没有问题, 可以使用 mysql client 尝试连接第二个 MySQL:
mysql -u root -p -h localhost -p 3307
6. 停止第二个 MySQL 用以下指令:
mysqladmin -S /var/lib/mysql/mysql2.sock shutdown -p
7. 如果可以正常启动及停止第二个 MySQL, 可以建立一个简单的 MySQL 启动 shell script,
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/sh case "$1" in start) mysqld_safe --defaults-file=/etc/my2.cnf & ;; stop) mysqladmin -S /var/lib/mysql/mysql2.sock shutdown -p ;; restart) mysqladmin -S /var/lib/mysql/mysql2.sock shutdown -p mysqld_safe --defaults-file=/etc/my2.cnf & ;; *) echo "Usage: mysqld2 [start|stop|restart]" esac |