-- 主从复制 (将ddl和dml操作通过二进制日志传到从库服务器中,然后在从库上对日志重新执行,使得主库和从库数据保持一致) -- master ---> slave -- 作用 1.主库出现问题,可以快速切到从库 2.实现读写分离 3.可以在从库执行备份,避免备份期间影响主库服务 -- 主库配置 1.修改配置文件 /etc/my.cnf #mysql服务id,保证集群环境中唯一,取值范围: 1- 2^23 - 1,默认为1 server-id=1 #是否只读,1代表只读,0代表读写 read-only=0 #忽略的数据,指定不需要同步的数据库 #binlog-ignore-db=mysql #指定同步的数据库 #binlog-do-db=db01 2.重启服务 3.登录mysql,创建远程连接的账号,并授予主从复制的权限 #创建itcast用户,并设置密码,该用户可以在任意主机连接该mysql服务 create user 'itcast'@'%' identified with mysql_native_password by 'Root@123456'; #为'itcast'@'%'用户分配主从复制权限 grant replication slave on *.* to 'itcast'@'%'; 4.通过指令,查看二进制日志坐标 show master status; -- 从库配置 1.修改配置文件 /etc/my.cnf #mysql服务id,保证集群环境中唯一,取值范围: 1- 2^23 - 1,默认为1 server-id=2 #是否只读,1代表只读,0代表读写 read-only=1 2.重启服务 3.登录mysql,设置主库配置 change replication source to source_host='x.x.x.x',source_user='xxx',source_password='xxx',source_log_file='xxx',source_log_pos=xxx; -- 上述是8.0.23中的语法,如果mysql是8.0.23之前的版本,执行如下sql: change master to master_host='x.x.x.x',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx; 4.开启同步配置 start replica; # 8.0.22之后 start slave; # 8.0.22之前 5.查看主从同步状态 show replica status; # 8.0.22之后 show slave status; # 8.0.22之前