MySQL主从复制以及常见的一些问题处理

来源:互联网 发布:隐藏软件 编辑:程序博客网 时间:2024/05/17 22:23

在本地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


使用管理员打开CMD窗口

跳转到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  就配置成功了。





0 0