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 条评论
登录 后参与评论

相关文章

来自专栏运维前线

CentOS7 安装并使用SQL Server

CentOS7 安装并使用SQL Server Linux 上的 SQL Server 安装指南 参考:https://docs.microsoft.com/z...

2046
来自专栏流柯技术学院

mysql数据库开启慢查询日志

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

972
来自专栏软件工程师成长笔记

centOS7安装MySQL流程介绍

1、隐藏密码 如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”(这是我乱写的地址哈)...

662
来自专栏吴伟祥

MySQL5.7 四种日志文件 转

1)show variables like '%verision%'; 显示数据库版本号,存储引擎等信息

492
来自专栏我的博客

MySQL主从故障解决

Slave_SQL_Running: No解决 1、在从数据库执行slave stop,停掉同步 2、查看主数据库状态 File: mysql-bin.00...

3206
来自专栏Ken的杂谈

CentOS 6/7 下 MySQL 5.7 安装部署与配置

672
来自专栏编程

PHP项目导入新手指南2017

以留言板项目message为例讲解: 把项目解压拷贝到网站根目录,通常是www文件夹下,这时候就可以打开浏览器通过127.0.0.1/message/访问项目了...

1805
来自专栏从零开始的linux

mycat实现mysql的读写分离

环境 ip角色端口128.0.0.101master3306128.0.0.102slave3306128.0.0.103mycat8066 前提两台机器已经做...

3286
来自专栏https://www.cnblogs.com/L

Mysql篇--Linux中安装Mysql

由于Windows安装Mysql非常麻烦,所以分享一篇Linux中对MySQL的搭建,废话不多说,来,come on.

832
来自专栏lgp20151222

mysql导入导出sql文件

1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname > db...

591

扫码关注云+社区