个人技术分享

mysql主从同步

在主服务器上

1.配置my.cnf

[mysqld]
log-bin=mysql-bin
server-id=1
#日志超过3天自动过期
expire_logs_days = 30
#同步student库
binlog-do-db=student
#不同步系统库
binlog-ignore-db=mysql
#bin-log日志文件格式,设置为MIXED可以防止主键重复
binlog_format=mixed   
#同步磁盘,这个开启性能比不开启低5倍
sync_binlog=1
  1. 创建复制用户并授权给从服务器:
CREATE USER 'replica'@'%' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;

3.查看二进制日志状态,记录下File和Position的值:

SHOW MASTER STATUS;

在从服务器上

1.配置my.cnf

[mysqld]
server-id=2

log-bin=mysql-bin#启动MySQ二进制日志系统
replicate-do-db=student  
#需要同步的数据库名。
replicate-ignore-db=mysql
#不同步mysql数据库  #此项主从库只需要配置一个
slave-skip-errors = all 
#跳过所有的错误,继续执行复制操作

2.登录mysql执行命令

mysql>stop slave
mysql>CHANGE MASTER TO MASTER_HOST='主服务器IP',MASTER_USER='replica',MASTER_PASSWORD='replica_password',MASTER_LOG_FILE='记录的File',MASTER_LOG_POS=记录的Position; 
mysql>START SLAVE
mysql>SHOW SLAVE STATUS