windowsMySQL5.6实现主从数据库同步数据

  mysql5.6数据库同步,单向双向同步问题

.单向同步

主数据库(mysql5.6)192.168.1.104

从数据库(mysql5.6)192.168.1.105

略去创建库的步骤,这里认为你同步的数据库已经存在,而且主从数据库的库和表结构均相同

1.在主数据库上创建用户

insert into mysql.user(host,user,password)

values('localhost','admin',password('123456'));

flush privileges;

2.主数据库提供用户,赋值访问权限

仅仅192.168.1.105这个机器使用admin/123456同步

grant replication slave,reload,super on *.* to 'admin'@'192.168.1.105' identified by '123456' with grant option;

所有人都只用admin/123456同步

grant replication slave,reload,super on *.* to 'admin'@'%' identified by '123456' with grant option;

3.修改104主数据库的my.ini

在[mysqld]节点下配置一下代码

#设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

server_id=1

log_bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

binlog_do_db=test  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

binlog_ignore_db=mysql  #不同步mysql系统数据库

binlog_ignore_db=information_schema  #不同步information_schema系统数据库

然后保存my.ini配置文件

管理员打开cmd

先停止mysql服务,net stop mysql

然后重启mysql服务,net start mysql

服务启动成功后,登陆mysql

mysql -u root -p123456  注意,-p和123456之间不用空格

在查看主数据库的状态,show master status\G;

+------------------+----------+--------------+------------------+
|
File                        |
Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |    120      | test            |
mysql                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

注意:这里记住File的值:mysql-bin.000001和Position的值:120,后面会用到。

4.修改105从数据库的my.ini文件

server_id=2

log_bin=mysql-bin

replicate_do_db=test

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

保存my.ini

然后停止mysql服务,net stop mysql

在启动mysql服务,net start mysql

然后进入mysql -u root -p123456

先停止从数据库同步,stop slave,

再输入:change master to master_host='192.168.1.104',master_user='admin',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
#执行同步语句

开启同步,start slave

注:经测试,stop slave ,start slave 和 slave start,slave stop一样都可以,

最后查看一下状态:show slave status;

mysql>
show slave status\G;

***************************
1. row ***************************

Slave_IO_State: Waiting for
master to send event

Master_Host: 192.168.1.104

Master_User: test01

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 120

Relay_Log_File: mysql-bin.000001

Relay_Log_Pos: 283

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:
mysql,information_schema

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 120

Relay_Log_Space: 465

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert:
No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

Master_UUID:
f44dc946-f462-11e4-81cc-00ffb613a054

Master_Info_File:
D:\GreenProgramFiles\MySQL Server 5.6\data\master

.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read
all relay log; waiting for the sla

ve
I/O thread to update it

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

1
row in set (0.00 sec)

注:Slave_IO_Running: Yes

Slave_SQL_Running: Yes

这两个都是yes的时候同步才会成功发生,否则不能实现同步

5.最后在主数据库上执行插入,更改,删除语句,在从数据库上查看,数据保持一致了,

.双向同步

在上述配置保持不变的情况下,各自增加主从配置项

104:主数据库已经配置完毕,需要配置从数据库

log_bin=mysql-bin

replicate_do_db=test

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

重启mysql,登陆后输入:

stop
slave;

change
master to master_host='192.168.1.105',master_user='admin',master_password='123456',master_log_file='mysql-bin.0000001',master_log_pos=120;

# master_log_file='mysql-bin.0000001',master_log_pos=120;

其中这两个参数是根据master主数据库的二进制日志文件和为止固定的

start
slave;

show
slave status\G;

105:从数据库已经配置完毕,需要配置主数据库

log_bin=mysql-bin

binlog_do_db=test

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

重启mysql,登陆输入:

flush
tables with read lock;

show
master status\G;得到主数据库的信息

根据这这个命令的结果在跟新104主从数据库的同步日志和位置

mysql>change
master to master_log_file='mysql-bin.00002',master_log_pos=120;

同时要为用户开放权限

仅仅192.168.1.105这个机器使用admin/123456同步

grant
replication slave,reload,super on *.* to 'admin'@'192.168.1.105' identified by
'123456' with grant option;

所有人都只用admin/123456同步

grant
replication slave,reload,super on *.* to 'admin'@'%' identified by '123456'
with grant option;

GRANT
REPLICATION SLAVE ON *.* TO 'admin'@'%' IDENTIFIED BY '123456';

GRANT
FILE,SELECT,REPLICATION SLAVE ON *.* TO 'admin'@'%' IDENTIFIED BY '123456';

最后配置完毕的结果

104:
主从数据库

#主数据库配置项

server_id=1

#auto_increment_increment=2

#auto_increment_offset=1

log_bin=mysql-bin

binlog_do_db=test

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

#从数据库配置项

replicate_do_db=
test #同步的数据库

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

105:主从数据库

#从数据库配置项

server_id=2

#auto_increment_increment=2

#auto_increment_offset=1

log_bin=mysql-bin

replicate_do_db=
test #同步的数据库

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

#主数据库配置项

binlog_do_db=test

binlog_ignore_db=mysql

binlog_ignore_db=information_schema

遇到的问题总结:

1.经测试,主mysql5.6,从mysql5.5,不能实现同步,

Slave_IO_Running:
No

Slave_SQL_Running:
Yes

错误提示:Last_IO_Error: Got fatal error 1236 from master when  reading data from binary log:

问题:一般版本不一致

2.

Slave_IO_Running: Yes

Slave_SQL_Running: No

3. Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for

replication to work.

mysql>show variables like ‘server_id';

+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 3 |
+—————+——-+

主从并不一样,排除该问题。

找到原因在于,拷贝整个data目录,把auto.cnf文件也拷贝过来了,里面记录了数据库的uuid,每个库的uuid应该是不一样的。

[auto]
server-uuid=6dcee5be-8cdb-11e2-9408-90e2ba2e2ea6

解决办法,按照这个16进制格式,随便改下,重启mysql即可。

4. 111010 17:35:49 [ERROR] Error reading packet from server: Client
requested master

to start replication from impossible position
( server_errno=1236)

111010
17:35:49 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data

from
binary log: 'Client requested master to start replication from impossible

position',
Error_code: 1236

111010
17:35:49 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000288',

position
627806304

解决方法:

mysql>
stop slave;

mysql>
change master to master_log_file='mysql-bin.000288',master_log_pos=627625751;

mysql>
start slave;

5.在一台主机上配置一台从机,启动的时候报
ERROR 1872 (HY000): Slave failed to initialize relay log info structure
from the

repository(双向配置后,启动从机报错)

解决方法:配置relay_log=relay-,

然后再重新停止net stop mysql,

启动net start mysql,

登陆mysql -u root -p123456

运行reset slave

然后启动从机start slave

mysql5.6数据库同步,单向双向同步问题的更多相关文章

  1. Oracle主从同步、双向同步的配置

    (本教程展示了Windows环境的oracle数据库主从同步,Linux环境一样也可以) (把主数据库obpm 和从数据库orcl 用实际的数据库名给替换掉) (配置主从同步后,再配置双向同步,可能会 ...

  2. mysql 之 主从同步(单向同步和双向同步)

    一. 实验环境部署 主服务器(MySQL-01) IP: 192.168.8.241  端口3306  ,操作系统:Centos6.5 64位 从服务器(MySQL-02)  IP: 192.168. ...

  3. SymmetricDS 数据库双向同步开源软件入门

    一句话概括该软件:SymmetricDS是一个文件和数据库同步软件,开源的,支持多主复制,同步时过滤和在异构的网络环境中进行数据转换传输.它支持单向和双向上的多个订阅者,异步的数据复制. 以下是从CS ...

  4. MySQL 数据库双向同步复制

    MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约. 问题和制约 数据库的双主双写并双向同步场景,主要考虑数据完整性.一致性和避免冲突.对于同一个库,同一张表,同一个记录中的 ...

  5. windows下 MySQL数据库双向同步 配置步骤

          最近在项目中遇到了要实现服务器上MySql数据双向同步,在网上找了很多资料,但是大部分都是在liux系统下配置的, 而且都是互相转载,没有一个详细的步骤,于是决定写一个windows系统下 ...

  6. 文件同步 单向rsync 双向unison 监控inotifywait 免密登录

    1.负载均衡中文件同步必不可少,我这边选择rsync来实现文件同步 rsync同步文件机制更适用于单向文件同步,可配合unison实现双向同步功能. 实现同步的两种方法 一:ssh方法 rsync - ...

  7. MYSQL单双向同步

    Master:192.168.1.101 Slave  :192.168.1.102 单向同步(一) 进入Master启动MYSQL [root@localhost ~]# service mysql ...

  8. MySQL主从双向同步复制

    本文介绍了mysql主从,实现mysql的双向同步复制. MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日 ...

  9. ogg的安装配置 配置双向同步(含DDL)

    第一部分 先配置单向同步(含DDL) 一 源端安装GoldenGate 创建用户 创建目录 mkdir -p /opt/ogg chmod -R 777 /opt/ogg chown -R oracl ...

随机推荐

  1. python根据圆的参数方程求圆上任意一点的坐标

    from math import cos, sin,pi x0,y0=0,0 r=4.0 angle=-25 x1 = x0 + r * cos(angle * pi / 180) y1 = y0 + ...

  2. linux应用之bugfree的安装及配置

    Bugfree3.0.4 Linux环境安装指南 bugfree系统安装的前提是,配置LAMP环境(apache+mysql+php),下面以centos6.3系统为例介绍bugfree3.0.4的安 ...

  3. 无言以队Alpha阶段项目复审

    小组的名字和链接 优点 缺点,bug报告 (至少140字) 最终名次 (无并列) 甜美女孩 http://www.cnblogs.com/serendipity-zeng/p/9937832.html ...

  4. ef 多个模块,通过程序集映射entity,指定对应的repository

    在Entity Framework repository下加两个方法: public virtual T GetByEntityName(object id, string EntityTypeNam ...

  5. PS 滤镜— —图像偏移

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  6. ZJOI2012题解

    t1灾难 给一个食物网 如果一个生物吃的所有东西都灭绝了 它也跟着灭绝 求每个生物灭绝时跟着灭绝的生物数量 支配树裸题,我们先拓扑排序,然后建立一棵树满足一个点灭绝时,有且仅有它的子树跟着灭绝 考虑如 ...

  7. 基于bootsplash的嵌入式linux启动画面定制

    来源: ChinaUnix博客 作者: ChinaUnix博客 发布时间:2007-01-01 16:29:00 摘 要:在基于linux的嵌入式仿真平台研发中,利用开源工具bootsplash能够定 ...

  8. 百度地图API的第一次接触——标注和信息窗的使用

    1.定义js函数,用于在指定位置添加标注,在标注位置添加并打开信息窗口 function addMarker(point, index){ // 创建图标对象 var myIcon = new BMa ...

  9. 无废话WCF系列教程 -- 李林峰

    李林峰的无废话WCF入门教程 无废话WCF入门教程一[什么是WCF] 无废话WCF入门教程二[WCF应用的通信过程] 无废话WCF入门教程三[WCF的宿主] 无废话WCF入门教程四[WCF的配置文件] ...

  10. chromium浏览器开发系列第五篇:Debugging with WinDBG

    Windbg 相信windows开发的人都知道,有些人用的溜儿溜儿的,有个crash,直接拿这个工具一分析,就定位出来了.非常好用.以前有个同事,做sdk开发 的,会各种命令.来北京后,还去过微软面试 ...