Linux搭建Mysql主从同步的教程

Linux搭建Mysql主从同步

1.启动mysql服务

首先把两台mysql服务全部启动成功

2.修改Mysql主库配置文件/etc/my.cnf

在最下面增加配置:

log-bin=mysql-bin   #[必须]启用二进制日志
server-id=200       #[必须]服务器唯一ID(唯一即可)

3.重启主库mysql

systemctl restart mysqld

4.创建数据同步的用户并授权

create user ‘xiaoming ‘@'%' identified by 'Root@123456 ';
grant replication slave on . to ‘xiaoming ‘@'%';

注:上面SQL的作用是创建一个用户 xiaoming ,密码为 Root@123456 ,并且给xiaoming用户授予REPLICATION SLAVE权限。

常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。

5.查看Mysql的File列和Positon列

show master status;

注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作

(如果执行其他的操作表中的数据是可能会改变的)

6.修改Mysql从库配置文件/etc/my.cnf

在最下面增加配置:

server-id=201       #[必须]服务器唯一ID(唯一即可)

7.重启从库mysql

systemctl restart mysqld

8. 登录从库Mysql,设置主库地址及同步位置

CHANGE MASTER TO
MASTER_HOST='xxxx',
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=571106275;
## 启动
start slave;

参数说明:

  • A.master_host:主库的IP地址
  • B.master_user:访问主库进行主从复制的用户名(刚刚在主库创建的用户名)
  • C.master_password:访问主库进行主从复制的用户名对应的密码

注:D和E看第五步查询的值 文件名和同步位置必须一致

  • D.master_log_file:从哪个日志文件开始同步(上述查询master状态中展示的有)
  • E.master_log_pos:从指定日志文件的哪个位置开始同步(上述查询master状态中展示的有)

9. 查看从数据库的状态

show slave status; 

然后通过状态信息中的 Slave_IO_running 和 Slave_SQL_running 可以看出主从同步是否就绪,如果这两个参数全为Yes,表示主从同步已经配置完成

10.命令

## 停止从库  跳过当前错误 启动从库
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave 
# 查看从库状态
show slave status;
## 重置主从
reset master;
RESET REPLICA