一,安装好主数据库和从数据库,此处省略
我已经准备好了以下数据库
主:
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=timezonedefault-time-zone = '+8:00'
重启mysql
service mysql restart
问题解决
my.cnf ,添加以下配置