搜索
您的当前位置:首页正文

MySql数据同步

来源:意榕旅游网

MySql数据同步,参考:

一、环境要求

Mysql 的版本尽量保持一致,如果不一致,
那么从服务器的版本不能高于主服务器的版本。 
主服务器 id:192.168.0.20
从服务器 id:192.168.0.143 
关闭两个服务器的防火墙,以能够 ping 通为最佳:ping 192.168.0.20 

二、配置主要服务器的数据库

1、 编辑配置文件 在 /etc/my.cnf  文件中的【mysqld】下添加: 
 #启用二进制日志[主库必须启用,主服务器发送变更记录到从服务器依赖的时二进 制日志]
 log-bin=mysql-bin 
 #这是数据库 ID,此 ID 是唯一的,主库默认为 1,其他从库以此 ID 进行
 递增,Id 值 不能重复,否则会同步   出错 server-id=1   
 # 需要同步的数据库;如果需要多个依次添加就好   
 binlog-do-db=test    
 # 不需要同步的数据库; 
 binlog-ignore-db = mysql   innodb_flush_log_at_trx_commit=1  sync_binlog=1        	
 # 提示 1:如果你不配置 server-id 或者配置值为 0,那么主服务器将拒绝 所有从服务器的连接。     
 # 提示 2:在使用 InnoDB 的事务复制,为了尽可能持久和数据一致,你应 该在 my.cnf 里配置
 innodb_flush_log_at_trx_commit=1 和 sync_binlog=1;       
 # 提示 3:确保主服务器里的 skip-networking 选项未启用,如果网络被禁 用,你的从服务器将
 不能与主服务器通信并且复制失败。 
 
2、 重启 mysql 使配置生效 Service mysql restart 
 
3、 进入 mysql 终端 Mysql –uroot –proot 
 
3.1、新建复制账号  CREATE USER 'slaveUser'@ '192.168.0.%' IDENTIFIED BY'123456'; 
 
3.2、赋予权限 grant replication slave on *.* to'slaveUser'@'192.168.0.%' identified by'123456';    
这里我的用户是 slaveUser,因为后面两台服务器都在 0 网段,所以我这里新 建用户也限制在 0 
网段连接,如果不想限制可以写成@'%'形式 。

4、 查看 master 状态 
	Show master status 
	

三、配置从服务器的数据库

1、 编辑配置文件
在 /etc/my.cnf 文件中的【mysqld】下添加:

2、 重启 mysql 使配置生效

Service mysql restart

3、 进入 mysql 终端修改 slave 参数

Mysql –urooot –proot
3.1、停止 slave
Stop slave;
.
3.2、修改 slave
CHANGE MASTER TO MASTER_HOST=‘192.168.0.20’,MASTER_USER=‘slave
User’,MASTER_PASSWORD=‘123456’,MASTER_LOG_FILE=‘mysql-bin.000007’,MAS
TER_LOG_POS=1080
这里的 MASTER_LOG_FILE 和 MASTER_LOG_POS 就是主服务器的 file 和 position 的值
.
3.3、启用 slave
Start slave;

4、 查看 slave 是否生效

Show slave status\G;

四、测试

在主服务器需要同步的数据库里新建表和数据,从库会自动复制 如果需要新增第二台从库,请重复从库配置

因篇幅问题不能全部显示,请点此查看更多更全内容

Top