您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

MySQL主从同步配置

时间:06-27来源:作者:点击数:
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;
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门