Windows 下MySql Replication(复制)配置
-
环境准备
到官网下载mysql-installer-web-community-5.7.21.0.msi并安装,选择MySql Workbench,记录安装时root输入的密码。 需要安装在两台机器上,分别作为主、从数据库。
注意:安装可能失败,需要根据提示安装必要组件,如visual C++ 2013。
Master机器设置
1, 登录workbench停止服务
2, 找到 my.ini,设置复制方式以及serverId
[mysqld] log-bin=mysql-bin server-id=1
3. 在workbench中创建复制号 repl, 设置角色为复制
4,记录主数据状态
运行SHOW MASTER STATUS命令,记录输入结果
FLUSH TABLES WITH READ LOCK
SHOW MASTER STATUS mysql-bin.000001 917
5,把现有数据导出
在Cmd下输入下列命令
cd C:\Program Files\MySQL\MySQL Server 5.7\bin mysqldump -uuser -p*** --all-databases --master-data > dbdump.db
6,UNLOCK TABLES
Slave机器设置
1, 停止服务 server-id=2 再启动服务
2, Setting the Master Configuration on the Slave
CHANGE MASTER TO MASTER_HOST='xxx.xxx.xxx', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=917;
3,Setting Up Replication with Existing Data
在cmd下导入数据
mysql -uroot -p*** < dbdump.db
因我在Master数据库中因建立了tablespace1, 导入前先执行下面语句,以免导入失败
CREATE TABLESPACE tablespace1 ADD DATAFILE 'tablespace1.ibd' Engine=InnoDB;
4, 运行命令START SLAVE
尝试修改主数据库中数据,正常情况下数据下自动同步过去。
官方指导文件:https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html
签名:删除冗余的代码最开心,找不到删除的代码最痛苦!