关于MySQL主从集群搭建,前面已经有一篇文章--MySQL主从集群搭建讲过,文中是在同一个机器上搭建的,并且当时以主库上没有原始数据为例介绍的。
本文介绍的场景,是主库上已经有数据了,更贴近实际生产环境的应用场景。
将要搭建的集群实例信息如下:
角色 | IP | 端口 |
---|---|---|
主库 | 192.168.1.81 | 3306 |
从库1 | 192.168.1.82 | 3306 |
从库2 | 192.168.1.83 | 3306 |
1.备份主库数据
在主库上执行备份:
$mysqldump --master-data=2 --single-transaction --default-character-set=utf-8 -R --triggres -A >backup.sql
其中,
--master-data=2
代表备份时刻记录master的Binlog位置和Position,
--single-transaction
意思是获取一致性快照,-R
意思是备份相关的存储过程,--triggres
的意思是备份触发器相关信息,-A
代表备份所有schema。
2.创建复制用户
在主库上创建复制用户:
mysql>grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';
3.查看主库上备份时刻的日志位点
查看MASTER_LOG_FILE
和 MASTER_LOG_POS
:
$ head -n 30 backup.sql |grep -i "CHANGE MASTER TO"
--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000020', MASTER_LOG_POS=178;
4.将备份复制到从库
$ scp backup.sql ip82:/home/mysql/
$ scp backup.sql ip83:/home/mysql/
5.搭建从库
首先在从库ip82恢复数据:
$ mysql -f –default-character-set=utf-8 <backup.sql
接着,配置复制信息:
$ mysql –S /tmp/mysql_3306.sock
msql>change master to master_host='192.168.1.181',master_user='repl',master_ password='123456', master_Port=3306,MASTER_LOG_FILE='mysql-bin.000020', MASTER_LOG_POS=178;
最后,开启复制
mysql >start slave;
查看复制状态:
> show slave status\G;
Master_Host: 192.168.1.81
Master_User: repl
Master_Port: 3306
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
... ....
从库83的搭建过程同上。
到此,主从复制集群搭建完成。
Just try, don't shy.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现