原理:将主服务器的binlog日志复制到从服务器上执行一遍,达到主从数据的一致状态
过程:从库开启一个I/O线程,向主库请求Binlog日志。主节点开启一个binlog dump线程,检查自己的二进制日志,并发送给从节点;从库将接收到的数据保存到中继日志(Relay log)中,另外开启一个SQL线程,把Relay中的操作在自身机器上执行一遍
优点:作为备用数据库,并且不影响业务。可做读写分离,一般是一个写库,一个或多个读库,分布在不同的服务器上,充分发挥服务器和数据库的性能,但要保证数据的一致性
————————————————
参考:https://blog.csdn.net/weixin_44393420/article/details/110722753
1、主库
- 修改my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 1
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
# 指定需要复制的数据库名为jgyw
binlog-do-db = furniture_store
- 修改好配置文件,重启mysql服务
systemctl restart mysql.service
- 创建从库同步数据的账号:这两个命令是在mysql的终端执行的。
grant replication slave on *.* to 'jgyw'@'192.168.197.136' identified by 'j123456';
flush privileges;
mysql8以上版本使用下面方法:
在Mysql 8版本中,分两步设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'WITH GRANT OPTION;
这一行命令来设置用户权限,必须分两步来实现设置用户权限【先创建用户、在