A端(主端):配置步骤:
系统:Windows Server 2008 R2
数据库:Mysql 8.0.12 B端(从端): --------------------- 系统:Windows Server 2008 R2 数据库:Mysql 8.0.12
一。肯定是需要安装好相关的环境和数据库,系统没有要求,数据库则一般建议为同一个版本,不同版本之间有可能会导致在镜像时出错。
二。安装完成后,首先需要将两端数据库服务停止,(如果是已有数据的,还需要先将两端的数据进行差异化同步后才可进行下一步操作,否则会出现报错),打开数据库的数据目录,找到my.ini文件,在my.ini文件中,我们找到“Server Id”这一行,默认情况下它的值为1,一般主端我们无需进行更改,子端我们更改成2保存即可
目前网络上可以查到的资料都是说还要添加以下内容
master-host=10.100.0.100
master-user=backup
master-password=1234
但经过查询资料得知,Mysql 在5.1以后就不再支持这个参数了,所以!如果你添加上了以上的内容以后,数据库服务是无法启动的,查看日志可以看到如下错误:MySQL:unknown variable 'master-host=masterIP'
三。以上操作完成以后,我们就可以启动数据库,进行数据库的配置了,但是这时候我们不要急着写入新的数据,一旦写入,则需要重新同步一次数据。
首先,我们在主端中,执行“show master status;”
记录下红框中的内容
然后到从端,执行“change master to master_host='主端IP',master_port=3306,master_user='主端用户名',master_password='主端密码',master_log_file='对应上述红框中的File',master_log_pos=对应上述红框中的Position,master_connect_retry=30;”
接着我们执行“start slave;”
执行完成后,我们可以通过“show slave status\G”这个命令来查看执行情况
如果没有意外的话,此时我们就可以看到Slave_IO_Runnning和Slave_SQL_Running这两个的值为Yes
四。我们在主库中,输入“create database test_db”,如果前面的配置正常的话,此时我们就可以看到从库中也出现了同样的库
主库执行情况
主库执行后,从库也同样出现了对应的数据表,至此数据库镜像的搭建就完成了
如何查看主从同步错误:
在从端执行“show slave status\G”,然后我们通过查看红框内的内容即可知道当前错误原因
1.Slave IO Runing无法启动, 报错: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.
这个问题,主要出现在我们为了方便,直接将主库复制过来替换从库,解决方法其实也很简单,在数据文件夹下找到auto.cnf文件,使用记事本等工具打开,将里面的值随便修改一下,保存退出,然后重启数据库即可解决
2.数据库报错,unknown variable 'master-host=xxx.xxx.xxx.xxx'
这个问题就是前面说的,Mysql从5.1.7开始就不再支持这个参数了,如果你碰到了,那说明你看的配置教程已经过时了,详细配置方法请见步骤三