一、安装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为其它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', //主库的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为空或者是其他字符的用户,这样就可以实现主从复制了。