MySQL 实例的读写分离配置可以通过以下几个步骤来实现:
- 安装和配置 MySQL 主从复制
首先,你需要在一台服务器上安装 MySQL 作为主服务器(Master),然后在另一台服务器上安装 MySQL 作为从服务器(Slave)。接下来,配置主从复制,使得从服务器能够复制主服务器上的数据。
- 配置主服务器(Master)
编辑主服务器的配置文件(my.cnf 或 my.ini),添加以下内容:
[mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=your_database_name
这里,server-id
是主服务器的唯一标识,log-bin
用于开启二进制日志,binlog-do-db
用于指定需要复制的数据库。
- 配置从服务器(Slave)
编辑从服务器的配置文件(my.cnf 或 my.ini),添加以下内容:
[mysqld] server-id=2 relay-log=relay-bin relay-log-index=relay-bin.index
这里,server-id
是从服务器的唯一标识,relay-log
和 relay-log-index
用于存储中继日志。
- 创建复制用户并授权
在主服务器上创建一个用于复制的用户,并授予相应的权限:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
- 配置从服务器连接到主服务器
在从服务器上,使用以下命令配置复制:
CHANGE MASTER TO MASTER_HOST='master_host_ip', MASTER_USER='repl_user', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 701;
这里,MASTER_HOST
是主服务器的 IP 地址,MASTER_USER
和 MASTER_PASSWORD
是在第 4 步中创建的复制用户和密码,MASTER_LOG_FILE
和 MASTER_LOG_POS
是主服务器的二进制日志文件名和位置,可以通过 SHOW MASTER STATUS;
命令查看。
- 启动从服务器复制
在从服务器上,使用以下命令启动复制:
START SLAVE;
- 监控复制状态
在从服务器上,使用以下命令查看复制状态:
SHOW SLAVE STATUS\G;
如果 Slave_IO_Running
和 Slave_SQL_Running
都是 YES
,则表示复制正常运行。
- 应用读写分离
在应用层,将读操作(SELECT)发送到从服务器,将写操作(INSERT、UPDATE、DELETE)发送到主服务器。这样就实现了 MySQL 实例的读写分离。