Linux利用mysqld_multi单机启动多个MySQL实例

黄舟
发布: 2017-03-10 11:13:23
原创
1142人浏览过

一、背景说明

        以往在使用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 = 3307
socket = /tmp/mysql.sock1
pid-file   = /opt/mysql/server-5.6/data3307/cloud3.pid3
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3307
log-bin=mysql1-9003-bin
user=cloud1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file   = /opt/mysql/server-5.6/data3308/cloud3.pid2
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3308
log-bin=mysql2-9003-bin
user=cloud1
登录后复制

(3)初始化数据库目录(根据配置中目录指向)

cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3307 --user=cloud1
cd /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。

爱派AiPy
爱派AiPy

融合LLM与Python生态的开源AI智能体

爱派AiPy 1
查看详情 爱派AiPy
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 1
mysqld_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
登录后复制

以上就是Linux利用mysqld_multi单机启动多个MySQL实例的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号