配置MySQL读写分离是一种常见的数据库架构方式,可以实现将读请求和写请求分发到不同的MySQL实例上,以提高数据库性能和可扩展性。下面是一个人性化的步骤指南:
- 部署主数据库(Master)和至少一个从数据库(Slave)。确保所有数据库实例都安装并正常运行MySQL。
- 在主数据库上进行配置更改。编辑MySQL配置文件(通常是
my.cnf
),找到以下行并进行相应更改:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
这些配置将启用二进制日志(binary log),并指定要复制的数据库。
- 重启主数据库以使配置更改生效:
sudo service mysql restart
- 在从数据库上进行配置更改。编辑MySQL配置文件,找到以下行并进行相应更改:
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
read_only = 1
这些配置将启用中继日志(relay log),并将从数据库设置为只读模式。
- 重启从数据库以使配置更改生效:
sudo service mysql restart
- 在主数据库上创建用于复制的MySQL用户,并授权该用户具有复制权限:
CREATE USER 'replication_user'@'slave_ip_address' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip_address';
FLUSH PRIVILEGES;
将 slave_ip_address
替换为从数据库的IP地址,password
为用户的密码。
- 在从数据库上配置复制。连接到从数据库的MySQL实例,并执行以下命令:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replication_user', MASTER_PASSWORD='password';
START SLAVE;
将 master_ip_address
替换为主数据库的IP地址,password
为复制用户的密码。
- 确保从数据库成功连接到主数据库,并开始复制。可以使用以下命令检查复制状态:
SHOW SLAVE STATUS\G
通过以上步骤,你可以配置MySQL读写分离。此时,写请求可以发送到主数据库,而读请求可以发送到任何一个从数据库,从而分担了主数据库的负载,提高了数据库的性能和可扩展性。请注意,在配置过程中要小心处理敏感信息(如密码),并确保数据库实例之间的网络连接和安全设置正确。