0.环境说明
服务器:两台
操作系统:win10
主服务器(master)
IP:192.168.1.101
从服务器二(slave)
IP:192.168.1.102
1.第一步安装mysql
在主服务器和从服务器上分别下载和安装mysql,操作入下图所示。
PS:控制台需要以管理员方式启动
。
2.进入主数据库配置
mysql > CREATE USER ‘master’@‘192.168.1.102’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
mysql > GRANT REPLICATION SLAVE ON . TO ‘test’@‘192.168.1.102’;
在主节点创建一个用户test,用于从节点连接主节点时使用。
注意master是主服务器的用户,而 192.168.1.102 指的是从数据库的服务器IP,意思就是让从服务器有访问的权限。
执行
mysql>show master status;
3.进入从数据库配置
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.101', -- 主服务器IP
MASTER_USER='master', -- 主服务器用户
MASTER_PASSWORD='123456', -- 主服务器用户密码
MASTER_LOG_FILE='binlog.000001', -- 主服务器
MASTER_LOG_POS=856; -- 位置
备注:MASTER_LOG_FILE 和 MASTER_LOG_POS 与 主节点 File 和 Position 对应。
4.查看(Slave)主从同步状态
mysql> show slave status\G;
5.开启主从同步
mysql> start slave;
6.再查看主从同步状态
mysql> show slave status\G;
查看状态时,可能会出现I/O任务启动失败的情况,即如下错误:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
这是因为在MySQL主从结构中,从机上的server_id和主机上的server_id不能相同,我们可以看一下主机上的server_id和从机上的server_id是否相同。
mysql> show variables like 'server_id';
主节点:
从节点:
这里我们把从机的server_id改成2
#此处的数值和my.cnf里设置的一样就行
mysql> set global server_id=2;
7.重新开启同步并查看装态
mysql> start slave;
mysql> show slave status\G;
8.主从配置成功,可以在主库开始测试,看从库是否同步。
9.还可以用到的其他相关参数:
master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:
不同步哪些数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
只同步哪些数据库,除此之外,其他不同步
binlog-do-db = game
总结:当前的做法也只是主服务器更新数据库信息,从库也更新,从库更新是不会更改同步到主服务器的,如果想要时间两者都能同步就把从服务器当做主服务器来重新做一遍流程即可!
参考链接:https://www.copylian.com/technology/163.html