1、环境
数据库版本:mysql-5.7.17
Master 服务器(win7虚拟机):192.168.61.128
Slave 服务器(本机) :192.168.0.119
注意:主从服务器mysql端口都需要映射出去。也就是说两台服务器的mysql数据库可以互连
2、修改配置文件
1、master服务器
开始——运行—services.msc,打开主库的服务列表,找到服务MYSQL57 ,查看该服务的配置文件所在路径。
打开配置文件my.ini,添加如下配置项
server-id=1
# 日志名称
log-bin=mysql.bin
# 以下配置可以不写
# 使binlog在每N次binlog写入后与硬盘同步
sync-binlog=1
# 几天时间自动清理二进制日志
expire_logs_days=1
# 需要同步的数据库
binlog-do-db=demo
# 不需要同步的数据库
binlog-ignore-db=mysql
2、slave服务器
以同样的方式找到并打开mysql数据库配置文件my.ini。
修改配置如下:
# server-id不能重复
server-id=95
#如果库名相同,使用这个
#replicate-do-db=demo
#如果库名不同,使用这个。
replicate-rewrite-db = demo -> demo2
3、命令操作
# 连接master
mysql -h 192.168.61.128 -uroot -p
# 创建授权用户
# 说明:test是mysql用户名,test是密码,192.168.0.119是从库的IP地址。
grant replication slave on *.* to 'test'@'192.168.0.119' identified by 'test';
# 刷新权限
flush privileges;
# 查看master状态
show master status;
# 登录从库
mysql -h 192.168.0.119 -uroot -p
# slave 与 master 建立连接,进行数据同步
# master_log_file为上图File,master_log_pos为上图Position
change master to master_host='192.168.61.128',master_user='test',master_password='test', master_log_file='mysql.000003',master_log_pos=1820;
# 查看slave状态
show slave status;
# slave_io_running和c均为yes即完成配置
附:
1、slave_io_running为connecting可以尝试stop slave,然后start slave
2、slave_sql_running为no,可以尝试stop slave,然后set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;,最后start slave
ps: 如未能解决,请自行度娘具体原因及方案