use mysql;
update user set host=‘%’ where user=‘root’ limit 1;
flush privileges;
复制原理
-
Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,这些记录叫做二进制日志事件(binary log events)
-
Slave通过I/O线程读取Master中的binary log events并写入到它的中继日志(relay log)
-
Slave重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储,从而实现将改变反映到它自己的数据(数据重放)
复制要求
-
主从服务器操作系统版本和位数一致
-
Master和Slave数据库的版本要一致
-
Master和Slave数据库中的数据要一致
-
Master开启二进制日志,Master和Slave的server_id在局域网内必须唯一
配置步骤
主数据库(192.168.249.131)
- 创建同步用户并授权
CREATE USER ‘slave’@‘192.168.249.129’ IDENTIFIED WITH ‘mysql_native_password’ BY ‘000000’;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@‘192.168.249.129’;
FLUSH PRIVILEGES;
注意这里创建用户时需要选用mysql_native_password
加密方式插件,否则默认会使用caching_sha2_password
加密方式,这样在同步的时候需要使用SSL的身份进行验证,为了方便简单,我们直接采用mysql_native_password
方式
- 修改配置/etc/my.cnf,新增如下配置,开启binlog,并重启mysql服务
[mysqld]
开启二进制日志功能
log-bin=mysql-bin