1.首先确认两台mysql木有问题
2.新增主节点(192.168.5.130)中配置:
#主从同步配置binlog log-bin=/var/lib/mysql/mysql-bin server-id=1001
3.重启:
systemctl restart mysqld
4.验证:
5.在Master库创建一个具有指定库数据复制权限的用户,slave库在访问数据连接时,需要用到该账户进 行连接。
-- 创建用户,其中repl表示用户名, 192.168.221.131表示slave库的ip地址,也就是只允许这个ip通过repl用户访问master库
create user 'repl'@'192.168.5.131' identified with mysql_native_password by 'repl'
执行授权操作
-- replication slave 表示授权复制
-- *.* 表示所有的库和表
grant replication slave on *.* to 'repl'@'192.168.5.131';
通过下面的sql命令刷新权限信息
flush privileges;
6.从mysql中执行
change master to master_host='192.168.5.130',master_user='repl',master_password='rep1',master_log_file='mysql-bin.000002',master_log_pos=858;
master_log_file 为主节点的File,
master_log_pos为Position
###这个地方截图错了,密码写错了,主修修改
7.启动slave
START slave
8.确认是否有无问题:
执行命令
Waiting for source to send event
观察两个字段:slave_io_running 和 slave_sql_running 是否都为yes
如果有问题查看字段:
slave_sql_running_state:
如果sql同步异常,需要手动执行,比如缺少了数据库
9.验证:
再130上新建数据,然后再131上刷新
其实就是基于binlog 的同步方式
10.查看binlog日志
查看当前数据库有哪些binlog文件
show binary logs;
查看binlog详细信息
show binlog events in 'mysql-bin.000002';
原理的核心点: