1.确认是否符合条件
查看两个数据库,数据库的名字是否相同,是否都为同一个,数据是否相同。不同则做相应的修改。这两个服务器分为服务器A与服务器B。
2.新建用户
首先打开Navicat连接两个数据库,参考4.1,并选择库创建新的查询。
在数据库A的查询中分别执行:
CREATE USER 'sync'@'服务器BIP' IDENTIFIED WITH mysql_native_password BY '***'; |
GRANT REPLICATION SLAVE ON *.* TO 'sync'@'服务器BIP'; |
在数据库B的查询中分别执行:
CREATE USER 'sync'@'服务器AIP' IDENTIFIED WITH mysql_native_password BY '***'; |
GRANT REPLICATION SLAVE ON *.* TO 'sync'@'服务器AIP'; |
3.更改配置文件
首先对配置文件进行备份,可以通过工具连接mysql所在的服务器,导出配置文件进行备份。
通过vi命令修改mysql配置文件,如图3.1所示。
图3.1修改配置文件
在[mysqld]下添加下面的值,添加后保存退出。
注意:添加的字段都要查看[mysqld]下是否已经存在,已经存在的直接更改,不存在的添加。
binlog_format=mixed sync-binlog=1 binlog-do-db=”数据库名称“ auto-increment-increment=2 auto-increment-offset=1 # auto-increment-offset主键初始偏移量,服务器A设置为1,服务器B设置为2 replicate-do-db=”数据库名称“ # replicate-do-db数据同步的数据库 relay_log=relay-bin server-id=1 # server-id,服务器A设置为1,服务器B设置为2 log-bin="mysql-bin" |
保存退出后重启mysql服务,如图3.2所示。
图3.2重启mysql服务
设置slave_pending_jobs_size_max,重启后进入Navicat查询页面执行。
注意:此项设置在重启过mysql或者mysql所在服务器后,均需要在此执行下面的这个命令。
set global slave_pending_jobs_size_max=2147483648; |
4.继续进行主主配置
继续在1分别连接两个mysql所在服务器的jhipv5查询中执行
SHOW MASTER STATUS\G |
接着上一步的做,分别在两个服务器的jhipv5的查询中执行
CHANGE MASTER TO MASTER_HOST='另一个服务器的IP',MASTER_USER='sync',MASTER_PASSWORD='****',MASTER_LOG_FILE='另一个服务器输出的File的值',MASTER_LOG_POS=另一个服务器输出的Position的值; |
在两个查询中分别执行下面两个命令
start slave; show slave status\G; |
如果输出中的Slave_IO_Running和Slave_SQL_Running的值都为yes,则表示配置成功。
5.验证配置主主服务成功
在服务器A上添加表或数据查看是否能同步到服务器B,同理在服务器B上添加数据查