Mysql主从配置文档(异步复制)
1 环境说明
两台window7虚拟主机
ip:10.64.153.248(主)、10.64.153.218(从)
2 数据库安装(10分钟)
已经安装好,版本(5.6.21)并且没有任何数据
本次测试安装的为绿色版
步骤一:
将mysql解压到一个最好不包含汉字的目录,本次测试解压在D:\soft\mysql-5.6.21-winx64
步骤二:
复制D:\soft\mysql-5.6.21-winx64 下的my-default.ini 在同目录下改名为my.ini,更改的内容如下,自己根据自己的目录更改路径即可,
步骤三:
在CMD命令行模式下,进入D:\soft\mysql-5.6.21-winx64\bin 目录下,执行命令,把Mysql安装为服务。因为我本地已经安装过,所以会提示已经安装过。
命令:mysqld install
在环境变量中,配置mysql,在Path变量中添加;D:\soft\mysql-5.6.21-winx64\bin
如图:我的电脑-属性
然后在服务中,找到mysql,启动mysql服务
在CMD模式下进入mysql,后文中的执行命令,都是在CMD中执行,
在运行中输入CMD,进入到cmd界面。新安装的mysql是没有密码的,提示输入密码的时候,直接按Enter即可进入。
3 停止服务(1分钟)
在服务中,直接点击停止就可以停止服务。如图:
4 数据迁移(30-50分钟)
复制主库中的数据库名字文件夹,和ibdata1 文件到从库中,具体的Data目录需要看my.ini中配置的路径,我的data在my.ini中是指定在D:\soft\mysql-5.6.21-winx64\data位置,如图。
5 主从配置(35分钟)
2.2配置文件(5分钟)
1. Master my.ini 中新增
#开启主从复制,主库的配置
log-bin= mysql-bin
#指定主库serverid
server-id=101
#指定同步的数据库,如果不指定则同步全部数据库
binlog-do-db=lkx-test
在my.ini中的配置如下图所示:
2. Slave my.ini 中新增
server-id=102
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=lkx-test
说明:从库,配置位置参考主库截图。
说明:
windows中的配置文件为my.ini
注意:二进制日志必须开启,因为数据的同步实质上就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍。
10.64.153.248 为主数据库服务器
10.64.153.218 为从数据库服务器
binlog-ignore-db:表示同步的时候ignore的数据库
binlog-do-db:指定需要同步的数据库
然后重启mysql
2.3 开始配置主从(15分钟)
第一步:
在10.64.153.248中创建一个10.64.153.218主机中可以登录的MySQL用户
用户:slave01
密码:slave01
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave01'@'10.64.153.218' IDENTIFIED BY 'slave01';
mysql>FLUSH PRIVILEGES;
第二步:
重启mysql,登录mysql,显示主库信息,查看10.64.153.248 MySQL服务器二进制文件名与位置
mysql>SHOW MASTER STATUS;
第三步:告知二进制文件名与位置
在10.64.153.218库中执行:
mysql>CHANGE MASTER TO
MASTER_HOST='10.64.153.248',
MASTER_USER='slave01',
MASTER_PASSWORD='slave01',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=120;
完成主从复制配置
2.4测试主从配置(10分钟)
在10.64.153.218中
mysql>START SLAVE; #开启复制
mysql>SHOW SLAVE STATUS\G #查看主从复制是否配置成功
当看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明状态正常
实际测试:
--登陆10.64.153.248主MySQL
mysql>SHOW DATABASES;
--登录10.64.153.218 从 MySQL
查看此时,数据库和表以及新插入的数据均已同步过来
2.4.1测试模拟从库挂掉,看从库从新启动后,数据是否还会和主库同步(5分钟)
停止10.64.153.218 从 MySQL,服务,在主库中新入新数据,并更新上一条数据,测试从库重新启动后是否会和主库数据保持一致。
启动 10.64.153.218 从 MySQL,服务,如下图,我们看到更新,新增的数据在从库中都同步过来了。
6 代码部署
7 关闭接口服务
8 功能测试
9 压力测试
10 开启接口服务
11 正式发布部署
12 备份还原(失败时5分钟)
主库中,在mysql user表中,删除创建的slave账号,删除主库my.ini配置文件中的新添加的配置。然后重启主库即可。