Msql8 主从同步配置

主从同步复制模式(本篇讲得是异步复制)

异步复制:主库执行一次事务后,立即将结果返回给客户端,并不关心从库是否已经接收并处理

全同步复制模式:主库执行一次事务后,且所有从库都执行完该事务后才返回给客户端

半同步复制模式:主库执行一次事务后,等待至少一个从库接收到并写到relay log中才返回给客户端

无损复制:增强版的半同步复制,数据零丢失,性能好,mysql5.7诞生

面对主从同步延时:
1.从业务上改善: 对于时效性比较高 得业务可以强制从主库查询
2.采用半同步复制:兼顾异步、同步复制的优缺点

1.环境搭建
我是用的阿里云服务器数据库作为主库,本地数据库作为从库,mysql8安装可以参考[https://blog.csdn.net/weixin_46093894/article/details/106039926?spm=1001.2014.3001.5501]

2.主库配置(master),vim 编辑数据库配置文件,加上以下配置

server-id = 1        # 节点ID,确保唯一
# log config
log-bin = mysql-bin     #开启mysql的binlog日志功能
sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7                           #binlog过期清理时间
max_binlog_size = 100m                    #binlog每个日志文件大小
binlog_cache_size = 4m                        #binlog缓存大小
max_binlog_cache_size= 512m              #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行


auto-increment-offset = 1     # 自增值的偏移量
auto-increment-increment = 1  # 自增值的自增量
slave-skip-errors = all #跳过从库错误

3.从库数据库配置文件(slave)

server-id = 2
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%

4.重置主库从库mysql

service mysqld  stop
service mysqld start

5.主库创建授权用户

CREATE USER repl_user IDENTIFIED BY 'repl_passwd';

-- 授权   可以指定IP ,也可以是所有ip地址均可访问 (用%号替代ip地址)
grant replication slave on *.* to 'repl_user'@'ip地址'       
--刷新权限表
FLUSH PRIVILEGES;

查看主库状态

show master status;

在这里插入图片描述
6.从库登录数据库配置

mysql> CHANGE MASTER TO
MASTER_HOST = '172.17.0.3',    #主库服务器地址
MASTER_USER = 'repl_user',     #操作同步的账号
MASTER_PASSWORD = 'repl_passwd', 
MASTER_PORT = 3307,
MASTER_LOG_FILE='mysql-bin.000005',   # 和主库file保持一致
MASTER_LOG_POS=120,   #和主库position 保持一致
MASTER_RETRY_COUNT = 60,
MASTER_HEARTBEAT_PERIOD = 10000;

**# MASTER_LOG_FILE='mysql-bin.000005',#与主库File 保持一致
**# MASTER_LOG_POS=120 , #与主库Position 保持一致****

7.启动slave进程
start slave;

关闭进程
stop slave;

8.在从库查询是否配置成功

show slave status;

以下两个参数都为yes则配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值