MySQL主从复制
分类:
文章
•
2024-03-05 07:47:30
复制原理

复制过程
- master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件,binary log events;
- slave将master的binary log events拷贝到它的中继日志(relay log);
- slave重做中继日志中的事件,将改变应用到自己的数据中。MySQL复制是异步的且串行化的
复制基本原则
- 每个slave只有一个master
- 每个slave只能有一个唯一的服务器id
- 每个master可以有多个slave
一主一从基本配置
- mysql版本一致且后台以服务运行
- 主从都配置在[mysqlId]节点下,都是小写
- 主机修改my.ini配置文件
- 主服务器唯一ID【必须】server-id = 1
- 启用二进制日志【必须】log-bin = 本地路径/mysqlbin
- 启用错误日志【可选】log-err = 本地路径/mysqlerr
- 根目录【可选】basedir=“本地路径”
- 临时目录【可选】tmpdir=“本地路径”
- 数据目录【可选】datadir=“本地路径/Data”
- read-only=0 主机读写都可以
- 设置不要复制的数据【可选】binlog-ignore-db=mysql(mysql出厂默认的不要复制)
- 设置需要复制的数据库【可选】binlog-do-db=需要复制的数据库名字
- 从机修改my.cnf配置文件
- 从服务器唯一ID【必须】server-id=2
- 启用二进制日志【可选】
- 主从服务器都要关闭防火墙
- 主机建立账户并授权slave
- GRANT REPLICATION SLAVE ON . TO ‘用户名’ @'从机数据库IP‘ IDENTIFIED BY ‘密码’
- 刷新权限 flush privileges 刷新权限
- 检查主机状态 show master status【记住2个参数File和Position】
- 从机上配置需要复制的主键
- GRANT MASTER TO MASTER_HOST=‘主机IP’,MASTER_USER=‘主机授权的用户名’,MASTER_PASSWORD=‘授权密码’,MASTER_LOG_FILE=‘FILE名字’,MASTER_LOG_POS=‘Position值’
- 启动从机复制功能 start slave
- 查看从机状态 show slave status【Slave_IO_Running:Yes,Slave_SQL_Running:Yes】配置成功。如果有值不是Yes,查看配置的错误日志