主库配置修改

修改my.cnf

  1. #开启binglog功能
  2. log_bin=mysql-bin
  3. server-id=1
  4. #表示执行写入操作与磁盘同步
  5. sync-binlog=1
  6. #执行哪些库需要同步,哪些不需要同步
  7. binlog-ignore-db=performance_schema
  8. binlog-ignore-db=information_schema
  9. binlog-ignore-db=sys
  10. binlog-do-db=test

修改后重启MySQL服务:systemctl restart mysqld

授权操作

指定哪些库可以进行复制

  1. root账号授权

    grant replication slave on . to ‘root’@’%’ identified by ‘root’; grant all privileges on . to ‘root’@’%’ identified by ‘root’; //刷新 flush privileges;

  2. 查看状态

    show master status;

image.png

从库配置修改

修改my.cnf

  1. server-id=11
  2. #relay_log文件名字
  3. relay_log=mysql-relay-bin
  4. #从库权限设置
  5. read_only=1

然后重启服务器 systemctl restart mysqld;
然后登录数据库查看从库状态

show slave status;

指定主库

change master to master_host=’192.168.209.140’,master_port=3306,master_user=’root’,master_password=’root’,master_log_file=’mysql-bin.000001’,master_log_pos=853;

开启从库

start slave;

查看信息

show slave status \G;

主从复制缺点

主从复制主要是从主库的某个时间点开始复制,不能复制以前的数据,及时有办法解决,如果数据太多,复制也是很需要时间的
解决方法:通过 mysqlDump命令来把历史数据导出来,然后再导入到从库中**