您的位置:首页 > 数据库 > MySQL

Win7环境MYSQL 主从复制的配置(无插件版)

2017-11-02 11:03 573 查看
近期做了个项目,要求数据库做个主从复制(因为读多写少,不用中间件),现在把相关步骤和命令写下来,免得自己以后老是忘记、丢三落四的。
另外下面的说到的主库也就是写库,从库也就是读库,在这里只演示一写一从的例子,一写多读的,可以根据自己的需求安装多个从库(必须在配置前复制多个从库)
首先做准备工作:
下载mysq集群版(https://dev.mysql.com/downloads/file/?id=473605),我用的是mysql-installer-community-5.7.20.0.msi(开发环境用的,生产服务器改用linux版的)。
确保开发服务器上没有安装过mysql,如果有则先卸载或
用命令.\Mysqld.exe remove mysql(你的mysql服务名)
现在开始安装:


安装主mysql

运行mysql-installer-community-5.7.20.0.msi,next, 选择Custom,我选的是-x64



选中选择的-x64版本,会在右下方有个“Advanced Options”选项,可以修改安装路径,分别是软件的安装路径和数据的存储路径,

我的mysq修改为D:\mysql\MySQLServer5.7 和 D:\mysql\MySQLServer5.7\data



然后一路next,如下图(一定要选择最下面的高级选项



还是next,



还是next,



还是next,下图是最关键的一步,如图,



最后next 并执行安装。

确认是否安装成功,打开服务,搜索“MySQL-3306”,是否能正常开启和停止,或者用客户端访问下。

安装从Mysql

复制刚才安装的MySQLServer5.7,重命名为MySQLServer5.7-3307

打开D:\mysql\MySQLServer5.7-3307\logs,清空里面的log,

进入D:\mysql\MySQLServer5.7-3307\data,将里面的日志文件删除,注意auto.cnf不能删


打开D:\mysql\MySQLServer5.7-3307\data\my.ini

修改里面的内容:

所有3306 改为 3307

里面的所有的MYSQL-3306 替换为 MYSQL-3307

server-id改为101吧

数据路径修改为datadir=D:/mysql/MySQLServer5.7-3307/data/Data

日志路径,也要相应的修改。

修改D:\mysql\MySQLServer5.7-3307\data\Data\auto.cnf

server-uuid=3b151ba9-bfa9-11e7-9156-34e6d7fe412f 随便改里面一个数字,别和“主MYSQL”重复就行。

最后启动从mysql,打开cmd,进入D:\mysql\MySQLServer5.7-3307\bin,在bin下执行.\mysqld.exe install MySQL-3307 –defaults-file=”d:\mysql\MySQLServer5.7-3307\data\my.ini” 如图:


注意前面有个“.”,表示在当前目录下执行

执行成功会有“Service successfully installed.”提示,

然后进入系统服务,手动启动服务“MySQL-3307”。

多个从库的,可以再次执行上面的步骤“2. 安装从Mysql”

主从配置

注意事项: DB版本一致;数据库一致;最好都用innoDB存储引擎;主DB开启二进制日志;主、从的server-id 要唯一;

在主库新建数据库HW5002(字符集utf-8),里面创建你的表结构,

然后导出该库HW5002.sql,

在从库也创建相同的库HW5002(字符集utf-8),将HW5002.sql导入。

重点来了

a) 现在开始配置主库:

打开主库的my.ini文件,在最下面追加

binlog-do-db=HW5002

#指定需要同步的数据库,如果不指定,则全部复制。

然后在主库下运行命令SHOW MASTER STATUS

执行结果如图



一会儿下面要用这个查询结果Postition#这个就是从库需要从主库的这个Position位置开始复制。

主库给从库创建一个同步用户slave001,密码123456并授权,命令如下:GRANT REPLICATION SLAVE ON . TO ‘slave001’@’127.0.0.1’ identified by ‘123456’;

flush privileges;

b)现在配置从库:

修改从库的my.ini文件,

确保server-id 不与主库重复,这里我设置server-id =101

然后,在从库执行如下命令:

CHANGE MASTER TO

master_host=’127.0.0.1’,

master_user=’slave001’,

master_password=’123456’,

master_port=3306,

master_log_file=’mysql-bin.000003’, #上面查询

master_log_pos=11737076;#上面查询

执行完后,执行启动slave命令:START SLAVE;

查看同步slave是否成功命令:SHOW SLAVE STATUS;

如果得到如下图所示都为YES则同步设置成功



验证

在主库INSERT/UPDATE一条数据,然后在从库查看是否也有 一条同样的数据。

以上大功告成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息