测试环境:
操作系统 | 数据库 | 端口号 | IP地址 | |
数据库A | Windows 7 | MySQL 5.1.69 | 3000 | 192.168.0.119 |
数据库B | Windows 7 | MySQL 5.1.69 | 3001 | 192.168.0.118 |
配置数据库A:
1):修改数据库配置文件my.ini,在[mysqld]区间加入一下字段
binlog-do-db=mydatabase1
binlog-ignore-db=mysql,information_schema,test
replicate-do-db=mydatabase1
replicate-ignore-db=mysql,information_schema,test
log-slave-updates =1
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
slave-skip-errors=all
master-host=192.168.0.118
master-user=root
master-password=sa
master-port=3001
master-connect-retry=10
2):重启MySQL服务
3):命令行登陆mysql,使用show slave status\G;查看slave状态,如下图:
如果Slave_IO_Running、Slave_SQL_Running状态都为Yes则表明设置成功。
配置数据库B:
1):修改数据库配置文件my.ini,在[mysqld]区间加入一下字段
binlog-do-db=mydatabase1
binlog-ignore-db=mysql,information_schema,test
replicate-do-db=mydatabase1
replicate-ignore-db=mysql,information_schema,test
log-slave-updates =1
sync_binlog=1
slave-skip-errors=all
master-host=192.168.0.119
master-user=root
master-password=sa
master-port=3000
master-connect-retry=10
2):重启MySQL服务
3):命令行登陆mysql,使用show slave status\G;查看slave状态,如下图:
如果Slave_IO_Running、Slave_SQL_Running状态都为Yes则表明设置成功。
验证方式:
分别改变两个数据库中的一个的数据查看另一个数据库是否跟着同步改变
注释:1)两个数据库的没有database1在配置一致(数据库名,表,数据)
2)两个数据库的root用户都已经预先配置了可以远程访问
配置属性说明:
binlog-do-db:本数据库服务器需要被同步的数据库
binlog-ignore-db:本数据库服务器被同步时需要忽略的数据库
replicate-do-db:同步目标服务器上数据库
replicate-ignore-db:同步目标服务器上的数据库时需要被忽略的数据库
log-slave-updates:当从目标目标服务器接收到改变时,写入更新二进制日志,非零时写入,零不写入
sync_binlog:表示MySQL多少次事务提交会刷新binlog,0表示mySQL不刷新,由文件系统控制,性能损耗最小,1最安全,每次提交都刷新,性能损耗大,0--100范围
slave-skip-errors:主库发生错误时,从库忽略,可以为指定错误的编号或者为all忽略所有错误
master-host:同步目标数据库的IP
master-user:用于同步目标数据库服务器的用户名
master-password::用于同步目标数据库服务器的密码
master-port:用于同步目标数据库服务器的端口号
master-connect-retry::同步目标数据库服务器时,断开连接后多久时间后重新连接(秒)
以上属性如果理解有误,望各位指点