在本地Windows环境下配置MySQL的主从复制
首先你要有两个mysql环境 并设置好端口号 一个3306 一个3307
配置mysql的环境变量
[mysqld]
#mysqld 配置
port=3307 #
basedir=D:\Mysql_Server_5.6.24
datadir=D:\Mysql_Server_5.6.24\data
#日志配置
log=D:\MysqlServer5.6\logs\mysql.log
long_query_time=2
log-slow-queries=D:\MysqlServer5.6\logs\slowquery.log
log-error = D:\MysqlServer5.6\logs\error.log
跳转到mysql的bin目录
mysqld -install
启动MySQL服务
netstart mysql 启动mysql服务
Net stop mysql 停止mysql服务
如果启动失败
1.查看MySQL服务是否正确
2.有问题使用 sc create MySQL 3307
3.net start MySQL 3307
添加一个mysql主从复制需要的账号
grant 权限 on 数据库对象 to 用户
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO weijie@'%'
IDENTIFIED BY '123456';
flush privileges; //刷新权限
配置主服务器
在MySQL配置文件加入:
server-id = 1; #主服务器master的id
log-bin = mysql-bin; #二进制变更日志
重启master,运行SHOW MASTER STATUS,输出如下:
配置从服务器
Slave的配置与master类似,你同样需要重启slave的MySQL。如下
log_bin = mysql-bin
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置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',master_user = 'weijie',
master_password = '123456',
master_log_file = 'mysql-bin.000001',
master_log_pos = 107;
#启动从库
start slave#停止从库
stop slave#查看从库状态
show slave status标红的是yes 就配置成功了。