Linux 单机启动多个mysql 实例(mysqld_multi )

来源:互联网 发布:淘宝手机端怎么加热点 编辑:程序博客网 时间:2024/05/16 10:08

【背景说明】

        以往在使用mysql时用的多的是仅仅使用一个mysql schema,或者多个schema,但一般都是在同一个数据库实例中的,也就是同一个端口的。

        mysql双机双向热备份中,机器甲上的myql schema(暂称为A)需要作为热备份(mysql replication)中的master节点,备份的mysql schema(暂称为B)则存在另一台机器乙上。那么双向热备中B也需要配置为master,A则配置为slave,说白了就是配置了两遍热备份,好,到这里机器甲的热备已经搞定了,再轮到乙。我们说到机器乙上也有一个mysql schema(C),也要配置为master,并且备份schema放在机器甲上,但问题来了:备份的mysql schema(B)刚才在配置热备时已经将mysql端口号与master 的角色绑定了,此时若配置C为master会将此前 配置B为master的操作覆盖掉;然后在机器甲上配置C的备份数据库(D)为master时,又会将 配置A为master的操作覆盖了。。尴尬

        那么在此过程中,配置schema A 和B的双向热备分别在两台机器上的默认端口3306上完成,而配置schema C和D的双向热备时,则需要分别在两台机器上不同的mysql实例中完成(端口号不同),下面对启动多个mysql实例进行说明。

【实现步骤】

        (1)默认mysql已经安装完成,基本配置已经实现。

        (2)配置my.cnf (仅写出本文相关的配置)

[mysqld_multi]mysqld = /opt/mysql/server-5.6/bin/mysqld_safe #根据自己的mysql目录配置mysqladmin = /opt/mysql/server-5.6/bin/mysqladmin[mysqld1]port = 3307socket = /tmp/mysql.sock1pid-file   = /opt/mysql/server-5.6/data3307/cloud3.pid3basedir=/opt/mysql/server-5.6datadir=/opt/mysql/server-5.6/data3307log-bin=mysql1-9003-binuser=cloud1[mysqld2]port = 3308socket = /tmp/mysql.sock2pid-file   = /opt/mysql/server-5.6/data3308/cloud3.pid2basedir=/opt/mysql/server-5.6datadir=/opt/mysql/server-5.6/data3308log-bin=mysql2-9003-binuser=cloud1
        (3)初始化数据库目录(根据配置中目录指向)

cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3307 --user=cloud1cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3308 --user=cloud1
        初始话成功,会提示OK,否则查看数据库目录是否有权限。

        (4)启动实例

        使用如下参数来启动mysqld_multi: (注:该命令在mysql的bin目录中 ) 。
             mysqld_multi [options] [GNR[,GNR]...]
        start,stop和report是指你想到执行的操作。你可以在单独的服务或是多服务上指定一个操作,区别于选项后面的GNR列表。如果没有指定GNR列表,那么mysqld_multi将在所有的服务中根据选项文件进行操作。
         每一个GNR的值是组的序列号或是一个组的序列号范围。此项的值必须是组名字最后的数字,比如说如果组名为mysqld17,那么此项的值则为 17。如果指定一个范围,使用"-"(破折号)来连接二个数字。如GNR的值为10-13,则指组mysqld10到组mysqld13。

mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1-2或者mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 2
        (5)修改密码,登陆

mysqladmin -u root -p -P 3307 -S /tmp/mysql.sock1 password  //刚开始默认没有密码,如果要输入密码,直接回车mysql -u root -p -P 3307 -S /tmp/mysql.sock1



 

0 0