MySQL主从复制配置详解

需积分: 3 29 下载量 94 浏览量 更新于2024-08-09 收藏 4.93MB PDF 举报
"配置主从复制-誉天hcie-r&s面试宝典v3.0(原版) 面试必备" 配置MySQL的主从复制是数据库高可用性架构中的重要组成部分,它确保数据在多个服务器之间同步,提高系统的容错性和可扩展性。以下是对配置主从复制过程的详细解释: 1. **启用主库的二进制日志**: 主库需要开启二进制日志功能,以便记录所有的DDL和DML操作。在`my.cnf`配置文件中添加`log-bin=mysql-bin`,并设置唯一的`server-id`,例如`server-id=1`。`server-id`是识别不同服务器的标识,通常使用IP的后8位加上端口来设定。 2. **获取主库状态信息**: 使用`SHOW MASTER STATUS;`命令获取当前主库的二进制日志文件名(File)和位置(Position),这些信息在从库配置时需要用到。 3. **创建复制账号**: 在主库上创建一个专门用于复制的用户,如`replic_user`,并赋予必要的权限。命令示例: ``` grant replication slave, replication client on *.* to 'replic_user'@'%' identified by 'password'; ``` 其中,`replication slave`权限允许从库读取主库的二进制日志,`replication client`权限则允许从库连接到主库获取复制信息。 4. **配置从库**: - 编辑从库的配置文件,设置`server-id`为一个不同于主库的值,例如`server-id=2`。 - 可选地,可以开启`log_slave_updates`,将其设置为1,这将使得从库接收的更新也会被记录到其自身的二进制日志中,便于在将来可能的主从角色切换或数据恢复。 - 设置`read_only=1`,防止非超级用户对从库进行写操作,提高数据安全性。 - 示例配置: ``` log_bin = mysql-bin server_id = 2 relay_log = /path_to_mysql_log/mysql-relay-bin log_slave_updates = 1 read_only = 1 ``` 5. **启动复制**: 在从库上使用`CHANGE MASTER TO`命令指定主库的连接信息和日志位置: ``` CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replic_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000362', MASTER_LOG_POS=310; ``` 然后启动复制进程,`START SLAVE;`。 主从复制带来的好处包括数据冗余、故障切换能力和负载均衡。然而,开启`log_slave_updates`可能导致更高的I/O负载,且不易发现从库上的异常写入。因此,监控和安全管理是必不可少的。 《MySQL DBA修炼之道》这本书深入介绍了MySQL的各个方面,包括但不限于数据库的安装部署、开发技巧、查询优化、测试基础等内容,是MySQL DBA学习的重要参考资料。