mysql数据双向同步_mysql数据双向同步实现
即读写操作在两台服务器上进⾏,每台服务器即主也是从。当其中的任何⼀台服务器收到操作请求时,其进⾏相应的数据变化,并把变化的数据复制到另⼀台服务器中。
4 数据同步实现
4.1mysql数据双向同步
4.1.1配置服务器ha001
Ø初始服务器
通过mysql⼯具连接服务器ha001后,新建两个数据库audit,idm。导⼊初始化数据库⽂件,完成数据库的初始化
Ø给⽤户授权
从开始菜单中打开mysql5的命令⾏,输⼊正确的密码,进⼊mysql控制台命令⾏模式后,输⼊如下命令:
#授权来⾃192.168.0.189的backup⽤户拥有对所有库的复制数据的权限,该⽤户的密码设为123456
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.189' IDENTIFIED BY '123456';
#刷新权限设置
FLUSH PRIVILEGES ;
Ø修改配置⽂件
修改主⽬录中的my.inf⽂件,在mysqld下⾯加⼊如下内容
server-id = 1
log-bin=mysql-bin
binlog-do-db = audit
binlog-do-db = idm
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = test
master-host    = 192.168.0.189
master-user    = backup
master-password = 123456
master-port    = 3306
replicate-do-db = audit
replicate-do-db = idm
master-connect-retry = 60
4.1.2配置服务器ha002
Ø初始服务器
通过mysql⼯具连接服务器ha002后,新建两个数据库audit,idm。导⼊初始化数据库⽂件,完成数据库的初始化
Ø给⽤户授权
从开始菜单中打开mysql5的命令⾏,输⼊正确的密码,进⼊mysql控制台命令⾏模式后,输⼊如下命令:#授权来⾃192.168.0.188的backup⽤户拥有对所有库的复制数据的权限,该⽤户的密码设为123456 GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.188' IDENTIFIED BY '123456';
#刷新权限设置
FLUSH PRIVILEGES ;
Ø修改配置⽂件
修改主⽬录中的my.inf⽂件,在mysqld下⾯加⼊如下内容
server-id = 2
master-host    = 192.168.0.188
master-user    = backup
master-password = 123456
master-port    = 3306
replicate-do-db = audit
replicate-do-db = idm
master-connect-retry = 60
log-bin=mysql-bin
binlog-do-db = audit
binlog-do-db = idm
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = test
4.1.3启动两台服务器上的mysql从服务
在两台服务器上,均完成如下操作:
从开始菜单中打开mysql5的命令⾏,输⼊正确的密码,进⼊mysql控制台命令⾏模式后,输⼊如下命令:#开启从服务器
slave start;
4.1.4服务状态检查
在两台服务器上,均完成如下操作:
从开始菜单中打开mysql5的命令⾏,输⼊正确的密码,进⼊mysql控制台命令⾏模式后,输⼊如下命令:#显⽰主服务器状态
Show master status;
#显⽰从服务器状态
Show slave status \G;
Ø查看连接配置状态:
Slave_IO_Running: Yes -----此项为No代表与主库连接有问题。
Slave_SQL_Running: Yes ----如果此项为NO代表配置有问题。
Ø查看对⽐pos点以及记录⽂件是否⼀致:
如果不⼀致,在从MySQL运⾏
#改变从服务器的pos点为98,记录⽂件为mysql-bin.000001
CHANGE MASTER TO Master_Log_File='mysql-bin.000001',Master_Log_Pos=98;
运⾏此命令前需要stop slave;之后再start slave;
4.1.5双向同步测试
Ø检查当在两台机器的任何⼀台mysql中修改数据时,另外的那台的数据是否也修改
Ø关闭其中⼀台mysql的服务后,更新另⼀台mysql的数据,再启动已停⽌的那台mysql服务器,查看数据是否修改
4.1.6特别注意事项
Ø请在任何时候都不要⾮法关机,否则将会造成同步数据的错乱。
Ø当出现了⾮法关机时,为不影响数据,请执⾏如下操作:
在该⾮法关机的机器启动后,检查该机器,查看数据是否与⼀直正常运⾏的机器⼀致了。确认其数据⼀致后。进⼊⼀直正常运⾏的机器,从开始菜单中打开mysql5的命令⾏,输⼊正确的密码,进⼊mysql控制台命令⾏模式后,输⼊如下命令:
#关闭slave服务
Slave stop;
#开启slave服务
Slave start;
通过这步后,⼀切即恢复正常
Ø如果数据已经完全错乱,请先在两台机器上停⽌slave服务,然后将数据正常的服务器上的数据导⼊到不正常的服务器上,保证两边的服务器数据⼀致。然后到数据正常的服务器的mysql控制台下输⼊:
#显⽰主服务器状态
Show master status;
获取其状态后,根据这个状态到数据不正常服务器上,通过命令:
#改变从服务器的pos点为xx,记录⽂件为mysql-bin.0000xx
CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;
修改其参数后,再通过
#开启从服务器
Start slave;
#显⽰从服务器状态,检查是否和主⼀致。
#检查Slave_IO_Running,Slave_SQL_Running状态是否正常
Show slave status \G;
确保⼀切正常后。再到数据不正常的服务器的mysql控制台下输⼊:
#显⽰主服务器状态
Show master status;
获取其状态后,根据这个状态到数据正常的服务器上,通过命令:
#改变从服务器的pos点为xx,记录⽂件为mysql-bin.0000xx
CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;修改其参数后,再通过
打开mysql服务命令#开启从服务器
Start slave;
#显⽰从服务器状态,检查是否和主⼀致。
#检查Slave_IO_Running,Slave_SQL_Running状态是否正常
Show slave status \G;
确保也正常。最后在到两台服务器上修改数据,查看数据是否已经同步
Ø同步⼀旦配置好后,请不要修改服务器机器名

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。