1. MySQL主从复制概述
MySQL主从复制是一种常用的数据备份和灾难恢复机制。通过设置一个或多个从服务器来复制主服务器的数据更改,可以有效地实现数据的安全备份和读写分离,提高系统的可用性和性能。
2. 环境准备
在进行MySQL主从复制之前,我们需要准备以下环境:
- 两台MySQL服务器,一台作为主服务器(Master),另一台作为从服务器(Slave)。
- 两台服务器的操作系统版本和MySQL版本应该相同。
- 服务器之间需要有网络连通性。
3. 配置MySQL主从复制
3.1 主服务器(Master)配置
确保MySQL主服务器上的
server-id是唯一的。在my.cnf文件中设置:[mysqld] server-id = 1开启binlog日志记录功能。在
my.cnf文件中设置:[mysqld] binlog-format = ROW log-bin = /var/log/mysql/mysql-bin重启MySQL服务使配置生效。
3.2 从服务器(Slave)配置
确保MySQL从服务器上的
server-id也是唯一的。在my.cnf文件中设置:[mysqld] server-id = 2停止MySQL服务,并删除或重命名从服务器上的
mysql-bin.index和mysql-bin文件。从主服务器导出数据库:
mysqldump -h 主服务器IP地址 -u 用户名 -p 数据库名 > 数据库备份.sql将备份文件传输到从服务器。
在从服务器上执行备份文件以恢复数据库:
mysql -u 用户名 -p 数据库名 < 数据库备份.sql在从服务器上执行以下命令,配置主从复制:
change master to master_host='主服务器IP地址', master_user='用户名', master_password='密码', master_log_file='主服务器binlog文件名', master_log_pos=主服务器binlog文件偏移量;注意:
主服务器binlog文件名和主服务器binlog文件偏移量可以通过以下命令获取:mysqlbinlog 主服务器binlog文件名 | grep Position启动从服务器上的MySQL服务。
4. 端口映射
为了确保主从服务器之间可以正常通信,需要在两台服务器之间的路由器上进行端口映射。
- 登录到路由器管理界面。
- 在“虚拟服务器”或“端口转发”设置中,添加新的规则。
- 设置源端口为MySQL从服务器的监听端口(默认3306),目标端口为主服务器的监听端口(默认3306),目标IP为主服务器的IP地址。
- 保存配置并重启路由器。
5. 验证主从复制
在主服务器上,可以使用以下命令查看主从复制的状态:
show slave status\G
确保Slave_IO_Running和Slave_SQL_Running状态均为Yes。
6. 总结
通过以上步骤,我们可以轻松实现MySQL主从复制与端口映射。这样可以提高数据库的安全性、可用性和性能,同时也可以为数据备份和灾难恢复提供有力保障。