主库在 虚拟机的mysql下,从库在windows下
首先,要配置主从复制的话需要在主库上面建立一个用户用于专门被从库同步的账号
#创建一个用户,在192.168.0下面的所有Ip都可以使用,账号是 repl, 密码是repl123 可以自行设置
CREATE USER 'repl'@'192.168.0.%' IDENTIFIED BY 'repl123';
#允许192.168.0从库可以连上来
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%';
记得端口必须可以访问,这个就不细说了
然后到 mysql的配置文件 linux在 /etc/my.cnf下 windows在安装目录的 my.ini文件
我的主库是虚拟机,所以到my.cnf加入如下的配置
[mysqld] 这个类似于一个属性,可以找到, server-id 取值在 2的32次方-1 只要保证唯一就行,随便你取
log-bin=mysql-binserver-id=1
配置完需要重启mysql服务
service mysql restart 或者 service mysqld restart
重启完之后执行
show master status;
这两个参数记录一下,一会要用到
然后就是配置从库了,先到 my.ini 文件加入下面的信息
[mysqld]
server-id=14
#可以指定要复制的库replicate-do-db = test #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db = mysql #忽略的库
配完进行重启
连接mysql执行以下的命令
先 stop slave;
然后再执行。 FILE POS 就是刚刚主库的信息,其他是ip,用户,和密码
CHANGE MASTER TO
MASTER_HOST='192.168.0.89',
MASTER_USER='repl',
MASTER_PASSWORD='repl123',
MASTER_LOG_FILE='mysql-bin.000006',
MASTER_LOG_POS=107;
最后记得一定要执行这个命令,否则不起效
start slave;
执行 show slave status\G;看到下面的信息就是成功了
左下角那个错误不用管,好像是加了\G导致的,没什么影响,\G是把结果格式化了
然后在主库加张user表,从库也出来了,就已经正常了
再说一下,请保证从库开始的时候是空的,要不然可能会有错
最后再说一下怎么取消主从复制这个功能,
主库下执行
reset masre;
把配置文件加的内容也删掉,然后重启服务就行了
如果你想把创建的用户也删了,可以到mysql的数据库里面有个user表,那里可以修改
从库的话执行
stop slave;
reset slave;
把加的文件信息去掉,
最后重启服务即可
参考的文章