1 配置MYSQL主备同步
1.1 测试环境
mysql版本:5.6.24;
操作系统内核版本:Linux-3.13-0-32
主数据库IP:192.168.10.3;
主数据库名:db351353;
备用数据库IP:192.168.10.4;
备用数据库名:db351353。
1.2 配置主数据库
1.2.1 编辑my.cnf文件
#服务器唯一ID,一般取IP最后一段
server_id = 3
#启用二进制日志
log_bin=mysql_bin
#需要备份的数据库名 多个库以逗号分隔
Binlog_do_db =db351353
#若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步
log_bin_trust_function_creators=TRUE
1.2.2 重启数据库
# service myql.server restart
1.3 锁定主数据库DDL操作
mysql> flush tables with read lock;
1.4 主备已有数据同步
用navicat for mysql将主数据库数据同步到备数据库
1.5 停止从服务
mysql>stop slave;
1.6 配置备用数据库
1.6.1 编辑my.cnf文件
#服务器唯一ID,一般取IP最后一段
server_id = 4
1.6.2登录主数据库查看master状态
mysql>show master status;
1.6.3 执行change master to系列命令
mysql> change master to
master_host=’192.168.10.3′,
master_user=’iom’,–该用户要有Repl_slave_priv权限,没有可用grant replication slave on *.* to ‘iom’@’%’ identified by ‘xf4851213’授权
master_password=’123’,
master_log_file=’mysql_bin.000005’, –根据主服务器show master status出来的File结果填写
master_log_pos=1192; –根据主服务器show master status出来的Position结果填写
1.7 重启从服务
mysql>start slave;
1.8 解锁主数据库
mysql> unlock tables;
1.9 验证主从同步
在备份数据库上执行
mysql>show slave status;
slave_IO_running和slave_SQL_running 为yes。
主数据库新建一个表,往表里插入几条数据,备份数据库可以同步过来表和表中的数据。
2 配置MYSQL主主同步
2.1 测试环境
mysql版本:5.6.24;
操作系统内核版本:Linux-3.13-0-32
数据库A IP:192.168.10.3;
数据库B IP:192.168.10.4;
要同步的数据库名:db351353;db352354
2.2 编辑配置文件
2.2.1 A机配置文件
# vi my.cnf
#服务器唯一ID,一般取IP最后一段
server_id = 3
#启用二进制日志
log_bin=mysql_bin
#需要备份的数据库名
binlog_do_db =db351353
binlog_do_db =db352354
binlog_ignore_db=mysql
#若涉及同步函数或者存储过程需要配置,否则主备会产生异常不能同步
log_bin_trust_function_creators=TRUE
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log_slave_updates
sync_binlog=1
# auto_increment_offset表示自增长字段从哪个数开始,两主机应一个奇数一个偶数。
auto_increment_offset=1
#auto_increment_increment表示自增长字段每次增长几位数,两主机应该一模一样
auto_increment_increment=2
#过滤掉一些没啥大问题的错误
slave_skip_errors=all
#需要进行同步的数据库.如果有多个数据库可使用多个replicate_do_db选项
replicate_do_db = db351353
replicate_do_db = db352354
#不需要同步的数据库.如果有多个数据库可使用多个replicate_ignore_db选项
replicate_ignore_db = mysql
replicate_ignore_db = information_schema
2.2.2 B机配置文件
# vi my.cnf
server_id = 4
log_bin=mysql_bin
binlog_do_db = db351353
binlog_do_db = db352354
binlog_ignore_db=mysql
replicate_do_db = db351353
replicate_do_db = db352354
log_bin_trust_function_creators=TRUE
replicate_ignore_db = mysql
replicate_ignore_db = information_schema
log_slave_updates
sync_binlog=1
auto_increment_offset=2 –此处与另一台机子不同
auto_increment_increment=2
slave_skip_errors=all
2.2.3 配置好my.cnf后,重启数据库A和B。
mysql>service mysql.server restart
2.3 执行配置命令
2.3.1 设置同步帐户
创建帐户并赋权
A机执行:
mysql> grant replication slave on *.* to ‘iomsync’@’192.168.10.4’ identified by ‘123’;
B机执行:
mysql> grant replication slave on *.* to ‘iomsync’@’192.168.10.3’ identified by ‘123’;
2.3.2 锁定数据库,查看主机服务状态
分别在A,B上执行:
mysql>flush tables with read lock;#防止进入新的数据
mysql>show master status;#查看主机服务状态
2.3.3 同步已有数据
使用navicat的数据传输功能同步数据,把源和目标两属性填写正确,左下角的数据库对象选择全选,点开始。
注意:同步时目标mysql必须先建好要同步的数据库。