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

相关文章

来自专栏Echo is learning

centos mysql初探 -- 配置、基本操作及问题

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

如何在Ubuntu 14.04上使用MySQL或MariaDB和Django应用程序

Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载...

1390
来自专栏专注于主流技术和业务

MySQL5.7在CentOS7上的安装配置

安装源文件:mysql-5.7.18-linux-glibc2.5-x86_64.tar

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

如何在Ubuntu 16.04上使用PostgreSQL和Django应用程序

Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载...

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

如何在CentOS 7上使用Django应用程序使用MariaDB

Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载...

2240
来自专栏抠抠空间

解决redis远程连接不上的问题

redis现在的版本开启redis-server后,redis-cli只能访问到127.0.0.1,因为在配置文件中固定了ip,因此需要修改redis.conf...

1.3K3
来自专栏吴伟祥

Linux下软件的安装与管理(四) 原

Linux 下安装软件有自己的一套方式,用户可以根据自己的需要和获得的软件包的不同,选择自己喜欢的安装方式,

2062
来自专栏Brian

Linux DNS之nslookup命令

---- 概述 在我文章中有一篇专门讲解DNS如何工作的,今天我们采用linux下nslookup工具来查询DNS。nslookup全称是”query Inte...

4595
来自专栏PHP技术大全

使用PHP扩展Xhprof分析项目性能实践

项目即将上线,想通过一些工具来分析代码的稳定性和效率,想起在上个团队时使用过的xhprof扩展;因为换了新电脑,所以需要重新编译此扩展,现将安装与实际排查过程完...

1171
来自专栏醉生梦死

Linux文件删除原理及案例分析

    通过命令lsof可以看到,该文件并未彻底删除,因为系统进程正在写入数据到该文件中,进程调用数不为零导致的!

1574

扫码关注云+社区

领取腾讯云代金券