?
即读写操作在两台服务器上进行,每台服务器即主也是从。当其中的任何一台服务器收到操作请求时,其进行相应的数据变化,并把变化的数据复制到另一台服务器中。
?初始服务器
通过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 |
?
?初始服务器
通过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 |
?
在两台服务器上,均完成如下操作:
从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:
#开启从服务器 slave start; |
?
在两台服务器上,均完成如下操作:
从开始菜单中打开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;
?检查当在两台机器的任何一台mysql中修改数据时,另外的那台的数据是否也修改
?关闭其中一台mysql的服务后,更新另一台mysql的数据,再启动已停止的那台mysql服务器,查看数据是否修改
?请在任何时候都不要非法关机,否则将会造成同步数据的错乱。
?当出现了非法关机时,为不影响数据,请执行如下操作:
在该非法关机的机器启动后,检查该机器,查看数据是否与一直正常运行的机器一致了。确认其数据一致后。进入一直正常运行的机器,从开始菜单中打开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; |
修改其参数后,再通过
#开启从服务器 Start slave; #显示从服务器状态,检查是否和主一致。 #检查Slave_IO_Running,Slave_SQL_Running状态是否正常 Show slave status /G; |
确保也正常。最后在到两台服务器上修改数据,查看数据是否已经同步
?同步一旦配置好后,请不要修改服务器机器名