window系统下面实现mysql主从数据库同步

今天给大家介绍一下window系统下mysql如何实现主从同步操作,首先得需要安装两台mysql服务器,我在这里浪费了相当多的时间

因为刚开始我想着是在window系统下面安装两个版本不同的mysql数据库,然后改端口就可以实现了。可是一直只能启动一个mysql服务,另一个一直启动不了,所以到最后就不了了之了。

后来想着在阿里云上面新建一个mysql服务器,本地新建一个服务器,然后通过这两个进行主从同步操作,可是也遇到很多问题。本地访问阿里云上面是可以的,阿里云上面访问本地就不行。因为外网想要访问本地局域网需要一些工具才可以,这些工具很多都是收费的,所以最后没有选择这个方案。

我最后实施的方案是在同一台电脑上面安装虚拟机,在虚拟机上面安装另外的mysql数据库。最后才实现两台数据库的功能。之所以跟大家讲这些过程挫折。。。。是希望大家少走一些弯路或者多一些考虑。

首先说明一下:这种主从同步都是通过mysql数据库本身的机制实现的,完全不需要我们写任何代码来维护这种同步关系。所以本质就是配置一些信息让mysql启动这种主从同步功能。下面看具体操作步骤:

一:安装两台mysql数据库服务器,一台是在本机上面作为Master数据库,另一台是在虚拟机上面是作为Slave从数据库。本机的端口号是:3306 ip地址是:192.168.88.22

二:.配置主从数据库服务器:MASTER主数据库 ,SLAVE从数据库 具体的配置过程如下:

MASTER主数据库配置(windows):

(1)在Master MySQL上创建一个用户‘wolzq’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

首先在mysql命令控制台上面创建wolzq用户,具体的sql为:create user wolzq

为这个用户赋予相应的权限,这里我赋值的是最大的权限。也就是该用户可以从任何的ip地址登陆访问数据库,可以操作所有的数据库表。具体的sql为: GRANT ALL PRIVILEGES ON *.* TO wolzq@'%' IDENTIFIED BY '220316'; FLUSH PRIVILEGES;

这里需要注意的几点是:

1.FLUSH PRIVILEGES;这个命令必须填写,否则上面设置的用户权限失效。

2.ip地址是可以设置范围的。例如:GRANT REPLICATION SLAVE ON *.* TO 'wolzq'@'192.168.0.%' IDENTIFIED BY '220316';

3.操作的数据库也是可以指定的。

4.用户的权限也是可以设置的。具体的命令大家可以自己去学习,我这里就不多说了。

如果不设置用户权限的话,本地可以连接的上mysql服务器,局域网或者外网是连接不上,会显示连接被拒绝或者用户没有这个权限。除此之外权限还可以精确到某个数据库,连接者的IP地址区间,设置是某个数据的操作问题等等都可以进行设置。我这边设置的是wolzq这个用户具备所有用户数据库的权限,所有的ip地址都可以通过Master这个用户来连接主数据库。

(2)找到MySQL安装文件夹修改my.ini文件。mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-bin就ok。

#开启主从复制,主库的配置

log-bin= mysql3306-bin

#指定主库serverid

server-id=101

#指定同步的数据库,如果不指定则同步全部数据库

#binlog-do-db=(数据库名称)

这里需要注意的几点是:

my.ini文件说明一下:

server-id=101这个ID值需要是唯一的,

binlog-do-db=mybatis_1128这个是表示同步的数据库,如果不指定则同步全部数据库

我刚开始的时候指定了这个数据库,然后新建数据库发现一直没有同步成功,找了半天才发现是因为这个配置的存在导致新建数据库没有同步到其他的Slave数据库里面去。所以这里也是需要注意的。

(3)查看日志

mysql> SHOW MASTER STATUS;

重启MySQL服务(到这里Master主数据库就配置完毕了)

SLAVE从数据库配置(windows):

(1)找到MySQL安装文件夹修改my.ini文件,在文件的最下面增加下面几行代码

#指定serverid,只要不重复即可,从库也只有这一个配置,其他都在SQL语句中操作

server-id=102

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin

重启MySQL服务

(2)连接Master

change master to

master_host='192.168.88.22', //Master 服务器Ip地址,也就是上面写的192.168.88.22

master_port=3306,//Master 端口号

master_user='wolzq',//Master 用户名

master_password='220316', //用户密码

master_log_file='master-bin.000003,//Master服务器产生的日志要和Master服务器所配置的相互对应如下如所示的file对应

master_log_pos=0;//要和Master服务器所配置的相互对应如下如所示的Position对应(经过测试发现如果是一样的只能同步一次,所以这里修正成0,0是可以每次都同步成功的)

(3)启动Slave

start slave;

(4) 查看配置是否成功

如果显示yes就说明配置成功了,已经可以实现主从同步了。

OK所有配置都完成了,这时候大家可以在Master Mysql 中进行测试了,因为我们监视的时Master mysql  所有操作日志,所以,你的任何改变主服务器数据库的操作,都会同步到从服务器上。创建个数据库,表试试吧。。。

实验结果:

Mstaer数据库配置:

SLAVE数据库配置:

主从同步结果:

参考文献:

http://www.cnblogs.com/rwxwsblog/p/4542417.html

http://www.cnblogs.com/yuejin/archive/2013/11/12/3419467.html

http://www.cnblogs.com/alvin_xp/p/4162249.html

如果对上面的内容还有什么疑义或者问题都可以加我QQ:208017534咨询。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链

权限管理与数据恢复

1、SQL的安全机制: 客户机安全:系统安全 服务器安全:登录SQL实例安全 数据库安全:访问数据库安全 对象安全:对数据库对象的操作安全 2、服务器安全:登录...

1817
来自专栏云计算教程系列

MariaDB Galera集群入门教程

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MyS...

1407
来自专栏实用工具入门教程

如何部署 Galera 数据库集群

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MyS...

521
来自专栏SEian.G学习记录

CVM自建基于GTID复制的mysql作为CDB的从库

云数据库CDB本身已经是主从架构,不过很多用户还是希望通过自建mysql实现和云数据库cdb实现主从同步,这时候用户就可以自己在云服务器CVM上部...

3618
来自专栏蓝天

MOOON-agent更新:新增IHeartbeatHook接口

新增IHeartbeatHook接口的目的是让应用可以在心跳包中安插自己的数据,比如将自己的状态数据通过心跳带回去。

461
来自专栏流柯技术学院

mysql数据库开启慢查询日志

第一句使用来定义慢查询日志的路径(若是linux系统,会涉及权限问题) 第二句使用来定义用时超过过多少秒的查询是慢查询,单位:秒。

1432
来自专栏Hadoop实操

Sqoop抽数到Hive表异常分析(之二)

使用Sqoop抽取MySQL数据到Hive表时,抽取语句正常执行在数据Load到Hive表时报“Operation category READ is not s...

1123
来自专栏Spark学习技巧

hive安装部署

1、 准备环境 1, 软件准备 Java-- jdk-8u121-linux-x64.tar.gz Hadoop--hadoop-2.7.4.tar.gz (j...

2069
来自专栏pangguoming

Mysql主从配置,实现读写分离

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的...

741
来自专栏大数据智能实战

HIVE备份之批量导出所有的HIVE建表字段

在HIVE实际工程部署当中,经常会用到一些备份,其中有一项就是如何保存所有HIVE表的建表命令语句。 当HIVE中表格特别多的情况下,如何批量进行存储呢。 针对...

1905

扫码关注云+社区