0
点赞
收藏
分享

微信扫一扫

MySQL主从复制

草原小黄河 2022-03-22 阅读 99
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. 创建同步数据的账户并进行授权操作
    # 创建一个账户test,密码是test11,ip是192.168.1.100,权限为主从同步,可以同步的数据库与表为*.*也就是全部
    grant replocation slave on *.* to 'test'@'192.168.1.100' identified by 'test11';
    # 刷新权限
    flush privileges;
  5. 查看主库状态:show master status;

从库操作:

  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;,Slave_IO_Running 和 Slave_SQL_Running 均为YES即表示主从已开启。
举报

相关推荐

0 条评论