前提:准备好两个mysql服务。
一、数据库配置
(1)主数据库配置:
log-bin=mysql-bin
server-id = 1
#设置需要同步的数据库
binlog-do-db=xiaoming
#屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
(2)从数据库配置
#开启日志
log-bin=mysql-bin
#设置服务id,主从不能一致
server-id=2
#设置需要同步的数据库
replicate_wild_do_table=dbname.%
#屏蔽系统库同步
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
(3)将主、从数据库服务重启
二、创建用于主从复制的账号
若没用创建账号,执行以下sql,若已创建则跳过。
账户创建好后在主库执行以下sql语句,并记住file和position
show master status;
三、主从数据同步设置
登录从数据库,执行以下sql语句:
#停止同步
stop slave;
#修改从库指向主库,使用上一步记录的文件名以及位点
CHANGE MASTER TO
master_host = 'localhost' ,
master_user = 'root' ,
master_password = 'root' ,
master_log_file='mysql-bin.000006',
master_log_pos=156;
#启动同步
start slave;
#查看从库状态,Slave_IO_Running和Slave_SQL_Running都为yes说明同步成功,如果不为yes,请检查error_log,然后排查相关异常
show slave status;
#注意,如果之前此从库已有主库指向,需要先执行以下命令清空
STOP SLAVE IO_THREAD FOR CHANNEL '';
reset slave all;
最后,进行测试,在主数据库中添加,修改,或删除某条数据,再到从数据库中查看,发现该数据也发生了改变。