mysql复制是基于主服务器的二进制日志中跟踪所有对数据库的增删改的,要开启主服务器的二进制日志
本地环境介绍:
主mysql: win 用的是Xampp集成环境,mysql5.6。ip地址:192.168.1.141
从mysql: vm 下centos7,mysql5.6。ip地址:192.168.136.128
主从mysql最好版本差不多,从服务器至少与主服务器版本相同或更高
一、主服务器配置
1、my.ini:
用编辑打开my.ini,我的在D:\xampp\mysql\bin下
#启用二进制
log-bin=mysql-bin
#master id
server-id=1
#指定哪个数据库同步开启二进制
binlog-do-db=lk_shiyong
注意:
这个参数是指定哪个数据库不开启二进制
binlog-ignore-db=database-name
如果是多个数据话的,要写多个binlog-do-db和binlog-ignore-db,数据库名称都是小写的~
2.为从服务器添加账户并配置权限
在主服务器上,必须为从服务器创建一个用户来连接主服务器,并设置replication slave权限。
cmd 下切换到D:\xampp\mysql\bin下,本地没有密码,直接mysql
mysql
>use mysql;
>select host,username from user;
>grant replication slave on *.* to 'replication'@'%' identified by '123456';
>select * from user where user = 'replication' \G;
3、把我们要同步的数据库备份一下,导入到从数据库服务器中
先备份lk_shiyong这个数据,再拷贝到从数据库服务器。
两边的数据库名称都是lk_shiyong
这样两边的原始数据就是一样的呢
4、查看主服务器状态并记录日志和位置参数,后面的从服务器要用到
>show master status\G;
记录:
file:mysql-bin.000002
position:120
二、从服务器
1、my.cnf
vi /etc/my.cnf
#添加服务ID
server-id=2
2、设置主服务器的地址,用户名和密码
# mysql -u root -p
>change master to master_host = '192.168.1.141',
master_user = 'replication',
master_password = '123456',
master_log_file = 'mysql-bin.000002',
master_log_pos = 120;
>start slave;
这里的master_log_file和master_log_pos 就是我们之前记录的值。
3、查看状态
>show slave status \G;
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
说明从服务器正在等待主服务器制作数据!
好吧,我们在主服务下的一张表中,添加数据后,再到从服务器查看一下,会显示刚刚插入的数据~