最近有好多的朋友在使用MySQL的时候遇到这样的问题:原本在服务器中装有比较老版本的MySQL,如5.1,5.5等等。应某些业务需要,不得不安装更新的版本,如5.6或5.7或更高。

    这样的话,就势必会面临下述诸多的问题:

    1.我们到底使用哪个版本的程序来启动MySQL服务?

    2.MySQL进程是否会有冲突?

    3.如何控制不同版本所监听的套接字?

    于是,我便开始了尝试,经过了若干次的失败,最终实现了这样的要求,只是实现的还是比较粗糙和简陋,各实例的配置文件和服务启动脚本之类的还有待于进一步完善。

    实验步骤如下:

  1. 实验环境:

    操作系统: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的数据目录在逻辑卷上

  2. 安装MySQL多实例

    cd /usr/local/mysql/

    scripts/mysql_install_db --user=mysql --datadir=/mydata/data/3306/

    scripts/mysql_install_db --user=mysql --datadir=/mydata/data/3307/

    cd /usr/local/second/mysql

    scripts/mysql_install_db --user=mysql --datadir=/mydata/data/3308/

    scripts/mysql_install_db --user=mysql --datadir=/mydata/data/3309/

  3. 准备配置文件

    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

  4. 为配置文件提供配置信息

    vim /mydata/data/multi55.cnf   #将配置文件中的内容替换为如下所示:

    vim /mydata/data/multi56.cnf   #将配置文件中的内容替换为如下所示:

    以上是简易的配置文件。这个配置文件只能让MySQL启动起来。需要更多的配置的话,直接添加到相应的字段中即可。

  5. 简易服务启动脚本样例

    如果想要设置服务的自动启动,请自行添加chkconfig和description字段

  6. 启动服务

    service mysqld start my56 1,2

    service mysqld start my55 3,4

  7. 查看套接字文件的创建情况

  8. 监控服务启动状态