NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
[TOC] ## **1.环境准备** 两台MySQL服务器互为主从。 | 服务器 | IP | | --- | --- | | 主服务器 | 192.168.3.16 | | 从服务器 | 192.168.3.18 | ## **2.配置文件** **修改192.168.3.16的`my.cnf`** ``` server-id = 1 log-bin = mysql-bin //开启二进制日志 binlog-format = ROW binlog-do-db = db1 //指定需要复制的db binlog-do-db = db2 auto-increment-increment = 2 //防止主键冲突,id + 2 auto-increment-offset = 1 ``` **修改192.168.3.18的`my.cnf`** ``` server-id = 2 log-bin = mysql-bin //开启二进制日志 binlog-format = ROW binlog-do-db = db1 //指定需要复制的db binlog-do-db = db2 auto-increment-increment = 2 //防止主键冲突,id + 2 auto-increment-offset = 2 ``` **重启mysql服务** ## **3.配置主从** 在`192.168.3.16`上执行 ``` // 创建复制的用户和赋权 CREATE USER 'testuser'@'192.168.3.18' IDENTIFIED BY 'test123'; GRANT REPLICATION SLAVE ON *.* TO 'testuser'@'192.168.3.18'; FLUSH PRIVILEGES; ``` 在在`192.168.3.16`上执行上执行 ``` // 创建复制的用户和赋权 CREATE USER 'testuser'@'192.168.3.16' IDENTIFIED BY 'test123'; GRANT REPLICATION SLAVE ON *.* TO 'testuser'@'192.168.3.16'; FLUSH PRIVILEGES; ``` 在`192.168.3.16`上查看master信息,然后在在`192.168.3.18`上配置。 ``` show master status; // 查看binlog的File和Position,如File为mysql-bin.000001,Position为348 // 在192.168.3.18上执行 change master to master_host = '192.168.3.16', master_user = 'testuser', master_password = 'test123', master_log_file = 'mysql-bin.000001', master_log_pos = 348; ``` 在`192.168.3.18`上查看master信息,然后在在`192.168.3.16`上配置。 ``` show master status; // 查看binlog的File和Position,如File为mysql-bin.000002,Position为345 // 在192.168.3.16行 change master to master_host = '192.168.3.18', master_user = 'testuser', master_password = 'test123', master_log_file = 'mysql-bin.000002', master_log_pos = 345; ``` ## **4.验证** 在两台服务器上执行以下命令 ``` show slave status\G; // Slave_IO_Running Slave_SQL_Running 都为Yes则配置完成 ``` 可以向其中一台写入数据,看看另外一台是否可以复制。