MySQL的复制功能通过主从架构实现数据同步,常用于备份、读写分离和高可用。要让MySQL支持复制,需正确配置主库和从库。以下是完整的安装与配置方法。
1. 确保MySQL已安装并可运行
在主从服务器上都需安装MySQL。可通过以下命令检查是否已安装:
mysql --version如果没有安装,请根据操作系统选择合适方式安装,例如在Ubuntu上使用:
sudo apt install mysql-server2. 配置主库(Master)
编辑主库的配置文件 my.cnf 或 mysqld.cnf,通常位于 /etc/mysql/ 目录下。
在 [mysqld] 段落中添加以下内容:
server-id=1 log-bin=mysql-bin binlog-format=row expire-logs-days=7 binlog-do-db=your_database_name (可选,指定需要复制的数据库)保存后重启MySQL服务:
sudo systemctl restart mysql登录MySQL,创建用于复制的用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
查看主库状态,记录File和Position值:
SHOW MASTER STATUS;3. 配置从库(Slave)
同样修改从库的配置文件,在 [mysqld] 中添加:
server-id=2 (每个从库ID必须唯一) relay-log=mysql-relay-bin log-slave-updates=1 (可选,用于级联复制) read-only=1 (防止误操作写入)重启从库MySQL服务。
进入MySQL,执行CHANGE MASTER命令连接主库:
CHANGE MASTER TOMASTER_HOST='主库IP地址',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 154;
其中日志文件名和位置来自主库的 SHOW MASTER STATUS 输出。
4. 启动复制并验证状态
在从库执行启动复制:
START SLAVE;查看复制状态:
SHOW SLAVE STATUS\G重点关注以下两项:
Slave_IO_Running: Yes Slave_SQL_Running: Yes如果均为Yes,说明复制正常运行。若有错误,可根据Last_Error信息排查网络、权限或配置问题。
基本上就这些。只要主从配置正确、网络通畅、账号权限到位,MySQL复制就能稳定工作。建议定期检查从库的复制延迟情况,确保数据一致性。
