上一篇是创建并启动了2个实例,下面进行主从测试和备份测试。

首先,记录下mysqld_safe和service mysqld start的区别,

mysqld_safe是个脚本,它会检测当前mysqld进程是否存在等等。

service mysql start是直接调用mysqld进程启动

mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息,并且提供了多个高级参数。可以指定sock。

service mysqld start是默认启动了33306.sock

1、主从库的配置登可参考“win10上运行mysql5.7的多个实例”,其中设置从库所连接的主机配置中,change master to要增加 master_port=33307,否则默认主动连接3306;

2、show slave status\G,双yes(Slave_IO_Running和Slave_SQL_Running),无报错,但是主库增加的新库无法同步。先新增库,再stop slave,根据show master status后的“file“”和“position”之,change master to之后,最后start slave。

     百度了很多之后都没有说明白,突然想起主库grant之后好像没有刷新权限,刷新、重启后从库还是同步不到。

     还是从bin-log同步的原理思考。

1)bin-log同步是基于主库bin-log日志中记录的SQL语句

       主库的数据变更写入bin-log;

       从库IO线程发起dump主库Bin Log文件的请求

       主库IO线程推送Bin Log文件到从库中

       从库IO线程把Bin Log内容写入本地的Relay Log文件中

       从库SQL线程读取Relay Log文件内容

       从库SQL线程重新执行一遍SQL语句

​​​https://www.jb51.net/article/259483.html​

  尝试了多次之后,发现要先将主库待同步的数据库的表、值都手动同步给从库(可以导出.sql文件,再导入从库),之后主库的表增加的行、删除的行,都能同步给从库。

同步成功的前提是主从库在当前(change master to)的状态下,数据一致,之后的增删改查才能同步