服务器:两台
操作系统:win10
IP:192.168.1.101
IP:192.168.1.102
在主服务器和从服务器上分别下载和安装mysql,操作入下图所示。
PS:控制台需要以管理员方式启动
。
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;
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 对应。
mysql> show slave status\G;
mysql> start slave;
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;
mysql> start slave;
mysql> show slave status\G;
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