MySQL作为一款强大的数据库管理系统,数据库复制是其中一个非常重要的功能。它允许在不影响生产系统的情况下备份和还原数据,同时也能用于横向扩展或做读写分离。
MySQL的数据复制是通过主从架构实现的。在这种架构中,有一个主数据库和一个或多个从数据库。主数据库拥有所有的数据,而从数据库通过复制主数据库的数据来与其同步。在Master-Slave模式下,主数据库可以写入数据,而从数据库只能读取数据。在Master-Master模式下,主数据库之间可以相互写入数据。
要复制数据库,需要设置以下步骤:
1. 确保MySQL服务器上已经启用了二进制日志功能(binlog)。
--by www.qzphp.cn # 修改 my.cnf 文件vi /etc/mysql/my.cnf# 在 [mysqld] 段末增加一行log-bin=mysql-bin
2. 配置主数据库
--by www.qzphp.cn # 创建一个用于复制的用户(例如replica)CREATE USER 'replica'@'%' IDENTIFIED BY 'password'; # 授权复制用户访问主数据库GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'; # 查看主数据库状态SHOW MASTER STATUS;
3. 配置从数据库
--by www.qzphp.cn # 指定要复制的主数据库CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 107; # 启动从数据库复制进程START SLAVE;
4. 验证
最后需要检查从数据库和主数据库是否同步。在从数据库上输入以下命令:
--by www.qzphp.cn SHOW SLAVE STATUS \G
如果Slave_IO_Running和Slave_SQL_Running两个字段均为"YES",则说明已经成功实现了数据库复制。

