Windows环境


MySQL-5.7.21



官网下载MySQL5.7.21.zip压缩包,解压缩   并复制出来三份 分别为m1 s1  m2 s2





mysql 主从复制线程 worker mysql 5.7 主从复制_数据库


其中 m1 -s1  这两个数据库我们要使用mycat做成分库分表,具体步骤请查看我的上一篇博客:


然后我们现在要实现的是m2 --->m1     s2--->s1  



首先:在这四个包下分别创建data目录 和my.ini文件  


打开my.ini文件   添加如下参数


[mysqld]  
  
 log_bin = log  
 basedir = D:\\tools\\DB\\test-mysql\\m1  
 datadir = D:\\tools\\DB\\test-mysql\\m1\\data  
 port = 3310  
 character_set_server=utf8  
 server_id = 20
 binlog-do-db=m2




[mysqld] log_bin = log

# 替换为自己的解压路径 basedir = D:\\tools\\DB\\mysql-5.7.21-winx64\\m1 datadir = D:\\tools\\DB\\mysql-5.7.21-winx64\\m1\\data port = 3307 character_set_server=utf8 server_id = 10 binlog-do-db=m2


注意 每个my.ini文件中的port和server_id不可重复

binlog-do-db=m2

同样在m2的my.ini文件中 binlog-do-db=m1


初始化MySQL实例 

以管理员身份(不然会提示权限错误)运行命令提示符,cd至m1/bin目录下,执行mysqld install m1 --defaults-file="D:\Program Files\mysql-m1\my.ini",提示服务安装成功。接着初始化数据,执行mysqld --defaults-file="D:\Program Files\mysql-m1\my.ini" --initialize,稍等片刻,执行成功没有任何提示。另外三个库也以此类推安装并初始化。 然后运行服务 重置mysql的root用户密码第一种: 密码默认生成在data目录下xxx.err文件中有一行A temporary password is generated for root@localhost:xxx,就是密码了,然后cd到bin目录下执行命令,mysql -P3306 -uroot -pxxx,登录进去。 执行以下命令修改root用户密码为123456,依次类推修改另外三个库的。 注:mysql -P 一定要加上,指定对应的端口号,不然是默认的3306

alter user 'root'@'localhost' identified by 'youpassword';




第二种:


在my.ini文件中添加skip-grant-tables 然后重启服务


在登陆MySQL  时候   mysql -P3310 -uroot -proot      密码随便输入就好  就可以跳过密码验证 登陆进去


随后修改密码 sql跟第一种的语句一样


skip-grant-tables去掉  然后重启服务



配置权限


在主库中 创建一个从库用来登陆的用户



grant replication slave on *.* to slave@localhost identified by "123456";


然后查看master信息



mysql 主从复制线程 worker mysql 5.7 主从复制_mysql_02


记住file 和position 



打开m2   登陆后 配置master信息




change master to master_host='127.0.0.1',master_port=3310,master_user='slave',master_password='123456',master_log_file='log.000003',master_log_pos=690;



开启并查看状态




mysql 主从复制线程 worker mysql 5.7 主从复制_MySQL_03


在展示信息中  如果看到




mysql 主从复制线程 worker mysql 5.7 主从复制_mysql 主从复制线程 worker_04


则证明配置成功!



检测主从复制




在主库中 创建m2数据库



mysql 主从复制线程 worker mysql 5.7 主从复制_mysql_05


创建一张user表




mysql 主从复制线程 worker mysql 5.7 主从复制_数据库_06


插入一条数据




mysql 主从复制线程 worker mysql 5.7 主从复制_MySQL_07


切换到从库 查看主从复制是否生效




mysql 主从复制线程 worker mysql 5.7 主从复制_mysql 主从复制线程 worker_08



mysql 主从复制线程 worker mysql 5.7 主从复制_mysql 主从复制线程 worker_09


可以看到  数据库和表都被同步复制过来   

至此 配置MySQL主从复制完成 s1--->s2的复制 按如上步骤配置即可