最近有好多的朋友在使用MySQL的时候遇到这样的问题:原本在服务器中装有比较老版本的MySQL,如5.1,5.5等等。应某些业务需要,不得不安装更新的版本,如5.6或5.7或更高。
这样的话,就势必会面临下述诸多的问题:
1.我们到底使用哪个版本的程序来启动MySQL服务?
2.MySQL进程是否会有冲突?
3.如何控制不同版本所监听的套接字?
于是,我便开始了尝试,经过了若干次的失败,最终实现了这样的要求,只是实现的还是比较粗糙和简陋,各实例的配置文件和服务启动脚本之类的还有待于进一步完善。
实验步骤如下:
- 实验环境:
操作系统:RHEL6.0 32位
MySQL版本:5.5.48 和 5.6.29
MySQL的安装路径:
5.5.48:/usr/local/second/mysql
5.6.29:/usr/local/mysql
MySQL的数据路径:
5.5.48:/mydata/data/3306 和/mydata/data/3307
5.6.29:/mydata/data/3308 和/mydata/data/3309
/mydata是一个逻辑卷的挂载点,即:MySQL的数据目录在逻辑卷上
- 安装MySQL多实例
cd /usr/local/mysql/
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --mydata/datadir=/mydata/data/3306/
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --mydata/datadir=/mydata/data/3307/
cd /usr/local/second/mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --mydata/datadir=/mydata/data/3308/
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --mydata/datadir=/mydata/data/3309/
- 准备配置文件
mysqld_multi --example > /mydata/data/multi.cnf #提供多配置文件模板
mv /mydata/data/multi.cnf /mydata/data/multi55.cnf /mydata/data/multi55.cnf
cp /mydata/data/multi55.cnf /mydata/data/multi56.cnf
- 为配置文件提供配置信息
vim /mydata/data/multi55.cnf #将配置文件中的内容替换为如下所示:
vim /mydata/data/multi56.cnf #将配置文件中的内容替换为如下所示:
以上是简易的配置文件。这个配置文件只能让MySQL启动起来。需要更多的配置的话,直接添加到相应的字段中即可。
- 简易服务启动脚本样例
- 启动服务
service mysqld start my56 1,2
service mysqld start my55 3,4
- 查看套接字文件的创建情况
- 监控服务启动状态