MySQL主从复制

概念

MySQL支持主从库的机制,所谓主从库的机制就是将数据库进行克隆,从库同步主库的变更,二者行为同步。

原理

当主库开启了二进制日志文件binlog的功能之后,主库数据的变更会将其写到binlog文件中去。从库去订阅主库的binlog文件,通过IO进程将主库binlog文件的变更同步到从库的RelayLog中继日志中去,再由从库的线程将中继日志中的信息同步至从库数据库。

优势

  • 一个主库可以有多个从库,可以大大降低主库的压力
  • 一个从库也可以作为主库,因此MySQL集群可以做成树状的形式
  • 可以在从库执行读操作,主库执行写操作再同步从库,从而实现读写分离
  • 主库出现故障的时候,从库可以顶上
  • 数据库备份这种比较耗费性能的操作可以在从库执行

操作

主库操作:

  1. 前往my.cnf MYSQL配置文件中进行如下配置:
    # MYSQL服务ID,集群环境中唯一标识符
    server-id=1
    # 指定binlog文件的存放路径
    log-bin=/var/lib/mysql/mysqlbin
    # 是否只读:1只读,0读写
    read-only=0
    # 不需要同步的数据库(一般mysql这种默认库不需要同步)
    binlog-ignore-db=mysql
    
  2. 重启主库MYSQL服务:service mysql restart;
  3. 进入mysql:mysql -u 用户名 -p密码;
  4. 创建同步数据的账户并进行授权操作
    (创建用户时如果有遇到提示密码不符合密码策略的,可以参考这篇博客修改:【修改MYSQL密码策略】)
    # 创建一个账户test,密码是test11,ip是192.168.1.100
    create user 'test'@'192.168.1.100' identified by 'test11'; 
    # 授权该账号权限为主从同步,可以同步的数据库与表为*.*也就是全部
    grant replication slave on *.* to 'test'@'192.168.1.100';
    # 刷新权限
    flush privileges;
    
  5. 查看主库状态:show master status;

从库操作:

如果从库是window系统下的,其实操作也大同小异,可以参考这一篇博客的:【MySQL主从复制(linux主+windows从)】

  1. 前往my.cnf MYSQL配置文件中进行如下配置:
    # MYSQL服务ID,集群环境中唯一标识符
    server-id=2
    # 指定binlog文件的存放路径
    log-bin=/var/lib/mysql/mysqlbin
    
  2. 重启从库mysql服务:restart mysql service;
  3. 进入mysql:mysql -u 用户名 -p密码;
  4. 设置主库:change master to master_host= '主库IP', master_user='主库同步账号', master_password='主库同步账号的密码', master_log_file='推送的日志文件', master_log_pos=推送日志的位置;(后两个参数来自于主库show master status的查询结果,最后一个参数是数值,注意不要加引号)
  5. 开启主从同步操作:start slave;
  6. 检测是否开启主从同步:show slave status \G;,Slave_IO_Running 和 Slave_SQL_Running 均为YES即表示主从已开启。

需要注意的是:主从复制只能保证开启主从复制之后的数据做同步,举例主库存在test数据库,从库什么都没有,主库向test数据库的test01表插入一条数据从库同步的时候是会报错的,因为从库没有这个数据库更没有这张表!!因此开启主从前最好是两个数据库处于初始状态,或者说从库是由主库的最新一次备份恢复而来的,保证开启前主从库数据同步!

文章内容来源于黑马程序员的视频观后总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啪!~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值