windows上实现Mysql主从复制

12 篇文章 0 订阅
8 篇文章 0 订阅

一、安装Mysql

1.本地首先需要搭建一套mysql,可以使用集成环境。

2.需要单独在搭建mysql,用来做主从复制

3.解压安装包 [mysql-5.6.24-win32.1432006610. zip]

4.配置 mysql环境变量 (  修改PATH,添加 D:\MysqlServer5.6\bin )  

5.D:\MysqlServer5.6 目录下新建my.ini 配置文件

#mysqld 配置
port=3307 //从库的端口号
basedir=D:\Mysql_Server_5.6.24
datadir=D:\Mysql_Server_5.6.24\data

#日志配置
log-error=D:\MysqlServer5.6\logs\error.log 
log=D:\MysqlServer5.6\logs\mysql.log 
long_query_time=2 
log-slow-queries=D:\MysqlServer5.6\logs\slowquery.log

使用管理员打开cmd窗口进入你从库的mysql的bin目录下面 然后执行命令

mysqld -install     //这里是将你从库的mysql添加到服务上面,出现Service successfuly installed.就说明添加成功了
启动mysql服务

net start mysql   启动mysql服务
net stop mysql   停止mysql服务

二、配置Mysql主从复制

添加一个mysql主从复制需要的帐号。用来互相通信

grant 权限 on 数据库对象 to 用户
如:GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO mysql_backup@'%'IDENTIFIED BY '123456';
刷新权限:flush privileges;

配置主服务器

在mysql文件的my.ini中加上

server-id=1 //这里的id相当于是一个唯一识别,在从服务器也需要配置,两台数据库这个id都得不一样 
log-bin=mysql-bi   //二进制日志文件
以下的命令可以在mysql的查询中执行,个人觉得比较方便

重启master

SHOW MASTER STATUS

file这个是日志文件,position这个是变更的数值,每一次变更日志他都会有所改变


配置从服务器

在从库的mysql的my.ini中加上

log_bin           = mysql-bin
server_id         = 2   //这里的id和主库的id不一样,一样会起冲突
relay_log          = mysql-relay-bin
log_slave_updates  = 1
read_only         = 1

server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slavemaster,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)

relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)

有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用

  在从库中执行连接主库的命令:

CHANGE MASTER TO master_host = '127.0.0.1', //主库的ip
 master_user = 'mysql_backup',   //主库<span style="font-family:宋体;">创建的mysql用户名</span>
 master_password = '123456',   //密码
 master_log_file = 'mysql-bin.000001',  //这个是<span style="font-family:宋体;">在主库show master status</span>的时候出现的日志文件,
 master_log_pos = 107;   //<span style="font-family:宋体;">日志编号
</span>
个人觉得如果每次都变更那么我这个连接主库不就得老改么,所以可以清除日志文件,那么他就永远都是重新开始也就不用修改了,看个人喜好,不嫌麻烦就不用

reset master  //主库中执行该命令,<span style="font-family:宋体;">清除</span>日志文件重新开始
连接完主库后,重启salve

stop SLAVE //停止slave
start SLAVE  //开启slave
show slave status  //查看连接状态
对了,在这说一下,连接主库的时候需要停止一下slave再去执行,不然会起冲突.连接完事后再开启不然就主从不了。

然后继续。 查看连接状态:


如果两个都是yes 那么说明主从复制已经做完了,如果Slave_IO_Running是NO或者是content的话,进入你的数据库mysql中user表删掉Host为空或者是其他字符的用户,这样就可以实现主从复制了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值