🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Window环境下的MySQL主从复制 ## 复制前的准备工作 准备两台安装MySQL的计算机,既可实现两台MySQL服务器主从复制备份操作 在MySQL目录下面的配置文件my.ini ```ini [mysqld] log_bin = "D:/MySQLlog/binlog" expire_logs_days = 10 max_binlong_size = 100M ``` 此时我们需要在D盘下面创建MySQLlog文件夹,binlog日志记录在该文件里面 |参数|说明| |-|-| |expire_logs_days|表示二进制日志文件删除的天数| |max_binlog_size|表示二进制日志文件最大的大小| 登录MySQL之后,可以执行show variables like '%log_bin%'命令来测试下log_bin是否成功开启,如果log_bin参数的值为ON的话,那么表示二进制日志文件已经开启成功 在master上配置所需要的账户 ```sql grant replication slave on *.* to link@'%' identified by '123'; ``` 在my.ini配置文件中配置Master主机的相关信息 ```ini server-id = 1 binlog-do-db = text binlog-ignore-db = mysql ``` |参数|说明| |-|-| |server-id|表示服务器id,服务器之间id不能一样| |binlog-do-db|表示要复制的数据库| |binlog-ignore-db|表示不需要复制的数据库| 重启Master主机的MySQL服务,然后输入show master status命令查询 将Master的数据库备份出来,然后导入到Slave主机中去 ```sql -- 导出数据 mysqldump -u root -p -h 127.0.0.1 text>C:\a.txt; -- 导入数据 mysqldump -u root -p -h 127.0.0.1 text<C:\a.txt; ``` 配置Slave主机 ```ini [mysqld] log_bin = "D:/MySQLlog/binlog" expire_logs_days = 10 max_binlong_size = 100M server-id = 2 ``` 重启Slave主机 ```sql stop slave; ``` 设置Slave从机实现复制相关的信息,命令如下: ```sql change master to -> master_host = '192.168.0.1', -> master_user = 'link', -> master_password = '123', -> master_log_file = 'binglog.000003', -> master_log_pos = 120; ``` |参数|说明| |-|-| |master_host|实现复制的主机的ip地址| |master_user|实现复制的登录远程主机的用户| |master_password|实现复制的登录远程主机的密码| |master_log_file|实现复制的binglog日志文件| |master_log_pos|实现复制的binlog日志文件的偏移量| 继续执行操作 ```sql start slave; show slave status \G; ``` 查看Last_IO_Error是否有错误提示,如果有执行12 重启Master主机,执行show master status \G命令,记下File和Position的值,然后在Slave主机重新设置信息 ## 主从复制测试 尝试在Master主机添加一条记录,查看Slave主机是否同步