mysql 主从复制配置

首先 主从库的mysql都需要打开binlog

主库配置文件中server-id与从库的server-id不能相同 建议主库设置为1

  #主库配置只记录某几个库表的binlog

  binlog-do-db      二进制日志记录的数据库(多数据库用逗号,隔开)
  binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)

  

  #从库配置只同步哪些库表

  slave端
  replicate-do-db    设定需要复制的数据库(多数据库使用逗号,隔开)
  replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
  replicate-do-table  设定需要复制的表
  replicate-ignore-table 设定需要忽略的复制表 
  replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符
  replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符

  增加通配符的两个配置

  replicate-wild-do-table=db_name.%   只复制哪个库的哪个表
  replicate-wild-ignore-table=mysql.%   忽略哪个库的哪个表

为了安全考虑 给主库设置一个用户只用来进行主从同步:

  GRANT REPLICATION SLAVE ON *.* TO '用户名'@'允许登录的地址' IDENTIFIED BY '密码';

  FLUSH PRIVILEGES;

  允许登录的地址可以不设置为% 设置为从库的固定ip 更安全

设置好以后可以在从库的服务器上测试一下看看这个账户是否可以登录:

  mysql -h 主库地址 -u用户名 -p密码

  如果不能登录请查看防火墙的设置

之后在主库查看binlog的状态

  show master status;

  +------------------+----------+--------------+------------------+

  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +------------------+----------+--------------+------------------+

  | mysql-bin.000011 |      880 |              |                  |

  +------------------+----------+--------------+------------------+

  记住file 和position

这是在从库进行主从同步的连接配置

  CHANGE 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 和 Slave_SQL_Running 都是yes才行  如果有no请查看mysql的错误日志

  这时候在主服务器的mysql上做一些操作 从库就可以同步了

  

  如果从库重启的话需要再开一次主从同步 start slave

原文地址:https://www.cnblogs.com/zwsblogs/p/11307884.html