对于主从复制的原理我这里就不解释了,CSDN其他文章都有介绍,我这边就介绍同步的步骤。
话不多说,直接开干。
首先,我们还是要保证数据库版本的一致性。
1、主节(Master)点配置
首先找到Master的配置文件(my.ini文件)
找到后加入或者配置一下参数:
log-bin=mysql-bin
server-id=1
2、从节点(Slave)配置
首先找到Slave的配置文件(my.ini文件)
找到后加入或者配置一下参数:
server-id=2
3、授权操作的用户
注意root是主服务器的用户,而 192.168.0.2 指的是从数据库的服务器IP,意思就是让从服务器有访问的权限
mysql> CREATE USER 'root'@'192.168.0.1' IDENTIFIED WITH mysql_native_password BY 'admin';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.0.2';
我这边没有新建用户,权当测试用的,你们可以新建一个专门操作同步的用户。
刷新授权表信息
mysql> flush privileges;
4、获取主服务器当前binary log文件名和位置
5、在从(Slave)节点上设置主节点参数
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.1', -- 主服务器IP
MASTER_USER='root', -- 主服务器用户
MASTER_PASSWORD='admin', -- 主服务器用户密码
MASTER_LOG_FILE='WIN-MOL6VAV4FEI-bin.000005', -- 主服务器
MASTER_LOG_POS=3244; -- 位置
6、查看(Slave)主从同步状态
mysql> show slave status;
这边我输了mysql> show slave status\G;这个报错,也不知道是为什么!如果有大神看到这个问题,还请评论告知,感谢!
7、开启主从同步
mysql> start slave;
8、再查看主从同步状态
mysql> show slave status;
查看状态时,可能会出现I/O任务启动失败的情况,Slave_IO_Runninng = NO。
这是因为在MySQL主从结构中,从机上的server_id
和主机上的server_id
不能相同,我们可以看一下主机上的server_id
和从机上的server_id
是否相同。
查看主从机的server_id,看看是否一样。
mysql> show variables like 'server_id';
如果一样,就修改从机的Server_id
mysql> set global server_id=2; #此处的数值和my.cnf里设置的一样就行
9、重新开启同步并查看状态
mysql> start slave;
mysql> show slave status;
开启主从之后,如果状态如上图所示,那么说明主从信息就已经配置好了。下面你就可以测试,主从之间是否可以复制了。
来源:CSDN
作者:小军君
链接:https://blog.csdn.net/lilixiaojun/article/details/104060177