mysql主从数据同步

一,安装好主数据库和从数据库,此处省略

我已经准备好了以下数据库

主:

centos 7

mysql 5.7

ip 192.168.1.2

从:

centos 7

mysql 5.7

ip 192.168.1.3

二,主数据库配置(192.168.1.2)

my.cnf ,添加以下配置

#唯一标识,主库从库不能重复
server_id = 1
#开启日志
log_bin = mysql-bin
#日志记录格式
binlog_format=MIXED
#单个日志文件最大
max_binlog_size = 512M
#日志有效期
expire_logs_days = 3
#日志只记录哪些数据库,这里只同步zhong数据,如果多个数据库用逗号隔开
binlog_do_db = zhong
#日志忽略哪些数据库
binlog_ignore_db = mysql,performance_schema,information_schema

重启mysql

service mysql restart

创建一个同步的用户

 //允许ip192.168.1.3登录,只有同步数据的权限,密码123456
CREATE USER 'slave'@'192.168.1.3' IDENTIFIED BY '123456';
grant replication slave on *.* to 'slave'@'192.168.1.3' identified by '123456';
flush privileges; 

如果主库已有数据,从库还没(如果主从库数据一致性请忽略)

在从库创建需要同步的库

主库执行,刷新表然后锁表

flush tables with read lock;

导出数据后,导入到从库

三,从库配置(192.168.1.3)

my.cnf ,添加以下配置

#唯一标识,不能和主库重复
server_id = 2
#开启日志
log_bin = mysql-bin      
#日志记录的格式  
binlog_format=MIXED    
#单个日志文件最大    
max_binlog_size = 512M   
#日志过期时间  
expire_logs_days = 3
#是在slave上配置,指定slave要复制哪个库
replicate_do_db = zhong 
#是在slave上配置,指定slave要忽略哪个库
replicate-ignore-db=mysql,performance_schema,information_schema 
#从库建议开启,有利于数据一致性
relay_log_recovery = 1   
#如果从库还会用做主库,建议开启  
log_slave_updates = 1      

重启mysql

service mysql restart

执行以下sql语句

主库执行

show master status;

记下 Position 和 File 的值

从库执行

stop slave;

-- master_log_file和master_log_pos是刚才查询主库记下的值
change master to master_host='192.168.1.2',master_user='slave',master_password='123456',master_post=3306,master_log_file='mysql-bin.000004',master_log_pos=154;

start slave;

查看同步线程是否正常

show slave status; 

回到主库解锁表(如果主从库数据一致性请忽略)

unlock tables;

到处完成了,可以去主库添加数据测试下,从库是否正常同步

四,从库和主库时间不一致,相差几个小时

 例如以上,从库同步后相差了12个小时

时区问题

修改主库和从库配置,my.cnf

在 [mysqld] 下添加配置

default-time-zone=timezone
default-time-zone = '+8:00'

重启mysql

service mysql restart

问题解决

 

my.cnf ,添加以下配置

原文地址:https://www.cnblogs.com/suruozhong/p/13199146.html