mysql主从复制

-- 主从复制 (将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之前

 

posted @ 2023-07-08 21:43  record-100  阅读(29)  评论(0)    收藏  举报