ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、准备工作 主MASTER:211.149.141.104 从SLAVE:211.149.141.56 主数据库,建好生产库结构,及初始化好数据;并导出数据文件,然后导入从数据库,使得主从初始数据库结构和数据完全一致; >[danger] 因为binlog复制只是确保后续主库增量通过binlog传输给从库,所以,初始化的时候,主库从库都需要自行导入相同的数据文件,确保两者初始化的时候完全一致; ## 二、主服务器设置 ### **创建复制用户**: ``` mysql>create user 'replicate'@'211.149.141.56' identified by '123456@Fd!@#'; mysql>grant replication slave on *.* to replicate@'211.149.141.56'; mysql>flush privileges; ``` ![](https://img.kancloud.cn/87/4b/874bc9f8ad0f7b2c587a157cbcaf7016_707x356.png) ### **验证操作**: 在从服务器上,用上述账号,访问主服务器: ``` mysql -h211.149.141.104 -ureplicate -p'123456@Fd!@#'; ``` ![](https://img.kancloud.cn/cd/9d/cd9d9403f9a2286437b08a1a3c4a60f4_758x217.png) ### **配置**: ``` [mysqld] server-id = 1 log-bin=mysql-bin binlog-do-db = test replicate-do-db=test binlog-ignore-db = mysql,information_schema,performance_schema ``` 重启; ## 三、从服务器设置 ### **配置**: ``` [mysqld] log-bin=mysql-bin server-id=2 binlog-do-db=test binlog-ignore-db=mysql replicate-do-db=test  replicate-ignore-db = mysql,information_schema,performance_schema ``` 重启; ### **设置同步**: ``` mysql> stop slave; mysql> reset slave; ``` master_log_file和master_log_pos需要去主服务器中查询; ``` show master status;\G ``` ![](https://img.kancloud.cn/ef/17/ef17c2e53bf337d3824154f2c2dbbdbb_705x172.png) ``` mysql> change master to master_host='211.149.141.104',master_user='replicate',master_password='123456@Fd!@#',master_log_file='mysql-bin.000001',master_log_pos=156,get_master_public_key=1; mysql> start slave; ``` ## 四、检查 在从服务器中,获取同步参数: ``` mysql>show slave status \G; ``` 确保: ``` Slave_IO_Running: Yes Slave_SQL_Running: Yes ``` ![](https://img.kancloud.cn/c6/b8/c6b8d5ddb59f0c2988950a03e218cff3_655x499.png) ## 五、运维 ### **停机流程** 1、先停止从库; ``` mysql>show slave status \G;看是否双YES mysql>stop slave; ``` ``` mysqladmin shutdown -u用户名 -p密码 ``` 执行完,看看还有没有mysql进程 ``` ps -ef|grep mysql ``` 2、再停止主库; ``` mysqladmin shutdown -u用户名 -p密码 ``` 执行完,看看还有没有mysql进程 ``` ps -ef|grep mysql ``` ### **启动流程** 1、先启动主库; ``` service mysqld start ``` 执行完,看看还有没有mysql进程 ``` ps -ef|grep mysql ``` 2、再启动从库; ``` service mysqld start ``` ``` mysql>start slave; mysql>show slave status \G;看是否双YES ``` 执行完,看看还有没有mysql进程 ``` ps -ef|grep mysql ``` 如果同步有问题,则可以重新找一次主库的master_log_file和master_log_pos;