第一次搭建MySQL的主从配置,别人都说很简单,真动起手来.... 坑还是很多, 你懂的.
首先,深度参考了这2篇优秀博文:
如果你按照上面2篇文章中操作就Ok, 那就不需要往下看了.
===============下面是我的总结: ===========
一句话: 更改DB的配置项,重启DB. 然后在slave上执行个同步的命令.
大致步骤:
1. 先配置主库
主库可以有多个.依次配置即可,配置后需重启MySQL服务;
配置主库/etc/my.cnf文件,配置log-bin日志开启;
2. 再配置从库
3. 开启同步;
4. 观察结果;
踩坑记录:
1. 所谓多源主从,就是个名称. 配置源/主(master)和从(slave), 配置多个master,就是多源,一个master,就是单源;
2. 先确保你的账户有足够权限. system account 不是root的话,起码要有sudo权限; mysql account则必须有root权限;
是的,你没看错, 假设我的场景是 2 master -> 1 slave. 那么3台服务器,3个mysql, 你得有6个账号; 不要被整晕哦,确实容易乱;
3. 确保server间网络互通.
可以用telnet ip 3306命令,最好用 'mysql -h {ip} -u username -p 密码' 命令,试试能不能remote login.
on slave, to login master.
4. 如果是新库,不需要DB导入导出;
如果是有数据的库(绝大多数情况下),需要先将主库(master)中需要做主从的DB备份(mysqldump)为文件,然后在从库(slave)导入;
5. 由于更改mysql配置需要重启mysql服务.所以重启完成后再导出DB,每次重启会导致bin-log文件位置变动;
6. 确保你master / slave的mysql版本一致.
mysql5.7和mysql8在某些命令在细节上有些不同, 需确认;
7. 在配置mysql bin-log开启的时候, 需配置 server_id, 这个配置只能配置为数字. 如: server_id = 17
8. 如果操作完,发现数据没同步, 问题非常难找.因为mysql的日志只会说概况.
总结,
对于非DBA用户来说,操作要小心.主要是不成功的情况下,如何做好处理预案.
配置本身不难,问题是通常情况下,服务器环境是运维建的. mysql是DBA熟悉的,精通的,这......就有意思了.
最后,祝你好运!