2025年3月17日 星期一 甲辰(龙)年 月十六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

MySQL主从同步配置

时间:06-27来源:作者:点击数:28
MySQL主从同步

1.配置文件路径

  • Linux 配置路径 /etc/my.cnf; windows 配置路径 mysql/bin/my.ini

2.主-数据库配置

2.1 修改配置文件

  • [mysqld]
  • log-bin=mysql-bin #[必须]启用二进制日志
  • server-id=1 #[必须]服务器唯一ID,默认是1,一般取IP最后一段

2.2 重启MySQL

  • [windows]
  • net stop mysql; #停止mysql
  • net start mysql; #启动myql
  • [Linux]
  • systemctl restart mysql; #重新启动mysql
  • [docker]
  • docker restart mysql;#重启docker容器

2.3 创建主从同步账户

  • create USER '用户名'@'%' IDENTIFIED BY '密码';
  • GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '用户名'@'%';
  • FLUSH PRIVILEGES;
  • #其中 %代表任意ip都可以连接,也可以将其提替换为备用数据库ip
2.4 查看当前二进制日志文件的状态信息
  • show master status; #查看当前二进制日志文件的状态信息

例:

名称 描述
File mysql-bin.000002 二进制日志文件名称
Position 3411 当前日志大小(指针位置)
Binlog_Do_DB basetest 数据库名称

3.从-数据库配置

  • [mysqld]
  • server-id=2 #[必须]不能跟主数据库相同
  • log-bin=mysql-slave-bin
  • relay-log=mysql-relay

3.1 手动同步数据

  • CHANGE MASTER TO
  • MASTER_HOST='主数据库ip(master ip)',
  • MASTER_USER='主数据用户名 #用于同步的用户,建议额外建立一个账户不要使用root',
  • MASTER_PASSWORD='密码',
  • MASTER_PORT=3306, # 主数据库端口
  • MASTER_LOG_FILE='mysql-bin.000002',
  • MASTER_LOG_POS=120 ;

3.2 启动slave

  • start slave; # 启动slave

3.3查看slave状态

  • show slave status; # 展示slave当前状态

例:

列名
Slave_IO_Running YES
Slave_SQL_Running YES

当这两个值都为YES时,主从同步配置完成。

4. 问题处理

4.1 同步失败,可以考虑重置postion

在主从数据库都执行一次下面的命令后,重新依次执行2.4、3.1、 3.2 、3.3

  • reset master;

4.2 postion一直在变化

将主从数据库都上锁后再进行同步,同步配置完成后解锁

  • # 上锁
  • lock tables;
  • # 解锁
  • unlock tables;
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门