1、VWare构建两台虚拟机,win7系统;
备注:VWare构建的虚拟机极有可能导致相互间ping不通,会对后续操作产生极大影响,因此要在开始就排除该异常;
2、基本信息:
master的IP:192.168.8.129;
slave的IP:192.168.8.130;
mysql:mysql-5.7.x
3、开始配置:
一、主服务器(master)配置
1、修改MySQL配置文件my.ini
[mysqld]
log-bin=mysql-bin log-bin-index=mysql-bin.index server-id=1 sync_binlog=1 binlog_format=mixed binlog-do-db=test binlog-ignore-db=mysql binlog-ignore-db=performance_schema binlog-ignore-db=information_schema
配置完成后重启MySQL服务。
2、授权给从服务器(slave)同步数据的账号密码
GRANT REPLICATION SLAVE ON *.*TO 'slave1'@'192.168.8.130' IDENTIFIED BY '123';
参数说明:
slave1:slave连接master使用的账号IDENTIFIED BY '123' :slave连接master使用的密码192.168.8.130:slave IP执行命令show master status;
注意结果中的File和Position,配置从服务器(slave)时会用到。
file:mysql-bin.000007
position:154
二、从服务器(slave)配置
1、修改MySQL配置文件my.ini
[mysqld]
server-id=2 log-bin=mysql-bin relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin sync_master_info=1 sync_relay_log=1 sync_relay_log_info=1
注意:slave的server-id与master的server-id不能一致,必须保证是唯一的。
2、设置连接主服务器(master)的信息
change master to master_host='192.168.8.129',master_user='slave1',master_port=3306,master_password='123',master_log_file='mysql-bin.000007',master_log_pos=154
参数说明:
master_host:master IPmaster_user:master数据库通过GRANT授权的账号master_port:master数据库使用的端口号master_password:master数据库通过GRANT授权的密码master_log_file:master数据库中通过show master status显示的File名称master_log_pos:master数据库中通过show master status显示的Position数据重启MySql服务。
执行命令:start slave。
执行命令:show slave status。
当Slave_IO_Running与Slave_SQL_Running都为Yes时才算配置成功。
此时,master服务器上test数据库里的数据就能同步到slave服务器上的test数据库中。
问题备份:
1、Slave_IO_Running:NO
两台虚拟机互相ping不通过,调整后重启mysql,仍不行!
查看mysql错误日志发现:
[ERROR] Slave I/O for channel '': Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593
出现这个问题的原因是:我创建完一台虚拟机并安装玩mysql后,直接克隆一台新的虚拟机。这也导致了两台虚拟机的mysql文件都是一样的!server-uuid参数在auto.cnf文件,位于 mysql【data】路径下,修改后要重启mysql! 本博客是参考了网上大牛们的文章的配置实录,感谢大牛们的辛勤付出!