搭建mysql的主从服务
这里是以mysql5.7版本为例。
准备好三台mysql服务器:192.168.1.115(主),192.168.1.116(从),192.168.1.117(从) 默认端口都是3306
1.部署mysql:
首要前提:三台机器的server-id 一定得设置成不同数值。
1 2 3 4 5 6 7 8 | 192.168.1.115: server-id:1 192.168.1.116: server-id:2 192.168.1.117: server-id:3 |
修改完server-id以后记得重启一下mysql
当然,还有一些参数可以修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [mysqld] #开启二进制日志 log-bin=mall-mysql-bin #设置server-id,和从不能一样 server-id=1 # 设置使用的二进制日志格式(row-行级别;statement=语句级别;mixed-混合级别) binlog-format=mixed #同步的数据库名称,如果不配置,表示同步所有的库 ## binlog-do-db=db1 #指定不需要同步的数据库名称 binlog-ignore-db=mysql #设置二进制日志使用内存大小(事务) binlog_cache_size=1M # 二进制日志过期清理时间,默认为0,表示不自动清理 expire_logs_days=7 #忽略主从复制中遇到的所有错误活指定的错误类型,避免slave端复制中断 ## 如:1062错误码代表主键重复;1032错误码代表主从数据库数据不一致 slave_skip_errors=1062 |
上述中,server-id,log-bin需要设置不一致。
2.创建用户:
在主库中,创建一个用户用于同步主从数据。并赋予权限
1 | CREATE USER 'slave' @ '%' IDENTIFIED BY '123456' ;GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave' @ '%' ;flush privileges; |
3.查看Master状态记住file和position
1 | show master status; |
记住File和Position,后面需要用到。此时一定不要操作Master库,否则将会引起Master状态的变化,File和Position字段也将会进行变化。
4.从节点配置、启动同步
进入到Slave库myslq客户端,执行如下命令:(注意master-bin.000004的master_log_pos位置要一样)
1 | change master to master_host= '192.168.1.115' , master_user= 'slave' , master_password= '123456' , master_port=3306, master_log_file= 'mall-mysql-bin.000003' , master_log_pos=154, master_connect_retry=30; |
上述参数的解析:
1 2 3 4 5 6 | 命令说明:master_host :Master库的地址,指的是容器的独立ip master_port:Master的端口号,指的是容器的端口号 master_user:用于数据同步的用户 master_password:用于同步的用户的密码 master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值 master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值 master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒 |
4.1.开启主从复制
首先前提在从库中:
1 | start slave; |
4.2.查看状态
1 | show slave status\G |
Slave_IO_Running 和 Slave_SQL_Running是查看主从是否运行的关键字段,默认为YES,表示主从状态正常。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
2022-10-19 python当中如何来获取文件路径
2022-10-19 python当中map,reduce和filter函数用法和区别