MySQL 主从复制是一种常见的 MySQL 数据库架构。在该架构下,有一个主节点和多个从节点。主节点用于写入和更新数据,从节点则用于读取数据。
在主从架构中,主节点会将其所有的数据更改写入二进制日志中,例如类似于以下的 SQL 语句: INSERT INTO users (name, age, gender) VALUES('John', 25, 'male'); 从节点会连接到主节点并请求复制二进制日志。主节点会将这些二进制日志发送给从节点,从节点便可以将其存储到自己的数据中。这样,即使主节点崩溃,从节点仍然能够继续进行读操作。 主从复制可以极大地提高系统的可用性,并且还可以提高读取性能。 当读取流量增加时,可以轻松地向系统添加更多的从节点,以平衡读的负载。
维护 MySQL 主从架构的关键是配置正确的复制设置和确保数据一致性。
1.配置 MySQL 主节点: server-id=1 log-bin=mysql-bin binlog-do-db=mydb binlog-ignore-db=mysql replication-user=myuser replication-password=mypassword - server-id 设置用于标识不同 MySQL 服务器的唯一 ID。 - log-bin 启用二进制日志。 - binlog-do-db 将二进制日志记录限制为特定的数据库。 - binlog-ignore-db 忽略不需要复制的数据库(例如系统库)。 - replication-user 和 replication-password 为授权从节点访问主节点的用户提供凭据。 2.配置 MySQL 从节点: server-id=2 replicate-do-db=mydb replicate-ignore-db=mysql replicate-user=myuser replicate-password=mypassword master-host=master-host-ip master-user=myuser master-password=mypassword master-port=3306 master-connect-retry=60 - server-id 设置用于标识不同 MySQL 服务器的唯一 ID - replicate-do-db 仅复制指定的数据库。 - replicate-ignore-db 忽略不需要复制的数据库(例如系统库)。 - replicate-user 和 replicate-password 为授权从节点访问主节点的用户提供凭据。 - master-host,master-user,master-password 和 master-port 用于指定主节点的位置和凭据。 - master-connect-retry 用于指定从节点尝试与主节点重新建立连接的时间间隔。 重要提示:配置 MySQL 主从复制时要确保主节点和所有从节点的 mysql 版本相同,且复制账户的权限足够用于复制数据。