找到Master mysql的位置
C:\Program Files\MySQL\MySQL Server 5.7
复制文件夹到你所需要的目录,我是在D:\Mysql separation\MySQL Server 5.7-3308复制的,然后改名字,这样便于区分,
复制my.ini,创建data文件夹
改变my.ini 中mysqlId的端口和文件位置 port=3308, basedir=D:/Mysql separation/MySQL Server 5.7-3308 datadir=D:/Mysql separation/MySQL Server 5.7-3308/data 注意这边是以反斜杠
初始化mysql:
最好是以管理员的身份运行cmd 进入D:\Mysql separation\MySQL Server 5.7-3308\bin 运行mysqld -initialize -insecure -user=mysql, 这时data文件夹会多出几个文件, 从c盘的mysql中复制系统自带的几个表和你要主从复制的表, 复制ibdata1表数据 我的路径是:C:\ProgramData\MySQL\MySQL Server 5.7\Data
这边我没有把我要主从的表划上,你们别忘了
启动服务:
服务名称就是显示在window中的,唯一的,我这边服务名称是mysql-3308 进入cmd(管理员)
Master的my.ini配置
现在开始配置主从配置,原理是每次操作数据,系统会生成一个二进制的日志,我们需要的就是读取这个日志,这个默认是关闭的,我们需要开启它; 打开C:\ProgramData\MySQL\MySQL Server 5.7中的my.ini 在mysqld中设置打开 log-bin=mysql-bin binlog-do-db=mamabike,表示的是需要同步的数据库 注意这边的server-id,和后面设置的slave的不能相同
Slave的my.ini配置
设置D:\Mysql separation\MySQL Server 5.7-3308中的my.ini log-bin=mysql-bin replicate-do-db=mamabike 设置server-id=3(默认为1,我这边有两个从库,这个是第三个) 注意操作配置文件的时候要关闭服务
开启服务
可以使用命令行net start mysq-3308
我这边是使用navicat可视化工具进一步操作
新建链接:
进入master的mysql的需要同步的库,查询position,file
show master status
切换到slave数据库
运行代码 CHANGE MASTER TO master_host = '127.0.0.1', master_port = 3306, master_user = 'root', master_password = '123456', master_log_file = 'mysql-bin.000001', master_log_pos = 734;
这边最后的master_log_pos就是上面我们的position,注意这边的账号密码,初始都是root,自己看清楚,我这边是我自己修改过的,还有注意这边的file要和master的相同
开始slave
start slave
show slave status
注意的是这边的log_file也是要相同的。看到slave_io_running和 slave_sql_running 是yes的话就可以了
测试一下:
在master中添加
一些容易出错纠正的地方,有时候start slave的时候出错了,需要关闭 slave,stop slave 比如不喜欢这个服务的名字,需要删除的时候你就可以在bin的目录下 mysqld --remove mysql-3308