Windows下MySql 的主从复制

由于mysql的数据库性能问题以及mysql数据库安全,mysql主从复制在我们的应用中常常被使用。mysql的主从复制是为读写分离的前提条件。

首先准备好两个mysql数据库。这里准备了两台mysql数据库,主数据(master)端口是3306,从数据库(slave)是3307。

Ø修改主数据库(master)的配置文件

找到master的配置文件my.ini配置文件,配置如下:

[mysqld]

#设置3306端口

port = 3306

#server-id和log-bin必须设置

#设置master的serverid

server-id=1

#要生成的二进制日记文件名称

log-bin =mysql-bin

#要同步的数据库

binlog-do-db=test1

#不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

#binlog-ignore-db=test1

Ø在master中添加一个mysql主从复制需要的账号

#添加账号授权

grant replicationslave,reload,super on *.* to

slave12@'localhost'identified by 'slave12';

#刷新配置

flush privileges;

Ø查看master的status

在mater的连接库下面,输入show master status,运行查看主数据库的状

态,如下

Ø修改从数据库slave的my.ini配置文件

找到slave的配置文件my.ini配置文件,配置如下:

#"server-id必须有且不能和其他master或slave重复"

port=3307

server-id = 12

replicate-do-db = test1

#log-bin =mysql-bin

#binlog-ignore-db =mysql #不备份的数据库

#binlog-ignore-db =information_schema

#binlog-ignore-db = performation_schema

#binlog-ignore-db = sys

#log-slave-updates = 1

#read_only = 1

Ø从slave库连接master数据库

进入slave数据库,即3307的数据库。执行下面代码

#停止从服务

stop slave;

#修改主服务配置信息

CHANGE MASTER TO

#主服务地址

MASTER_HOST='localhost',

#主服务端口

MASTER_PORT=3306,

#主服务同步账号

MASTER_USER='slave12',

#主服务同步密码

MASTER_PASSWORD='slave12',

#主服务日志文件,主服务执行show master status的file参数

MASTER_LOG_FILE='mysql-bin.000004',

#主服务日志站点,主服务执行show master status的position参数

MASTER_LOG_POS=120;

#启动服务

start slave;

Ø测试主从同步

在主服务器的test1库下,加入一张表userinfo,并插入一条数据,再看从库的变换情况。

#"以下操作都是在master库进行"

#"创建需要同步的库test1"

create database test1;

#"创建一个userinfo表"

create table userinfo(id int(10) not nullprimary key,name varchar(10),age int(3));

#"向userinfo表插入1条数据"

insert into userinfo(id,name,age) values(1,'张三',18);

#"进入从库会发现从库已经有demodb数据库userinfo表中已经同步了"

然后测试从表加入数据时,再次查看主表和从表的变化

#向从库的userinfo表插入一条数据

insert into userinfo(id,name,age) values(1,'李四',18);

总结:由上图的几种情况,可以看到主从复制的效果,主表的改变将影响从表的变化,但是从表的变化不会影响主表的变化。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181203G1130O00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券