MySQL 實例的讀寫分離配置可以通過以下幾個步驟來實現:
首先,你需要在一臺服務器上安裝 MySQL 作為主服務器(Master),然后在另一臺服務器上安裝 MySQL 作為從服務器(Slave)。接下來,配置主從復制,使得從服務器能夠復制主服務器上的數據。
編輯主服務器的配置文件(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
用于指定需要復制的數據庫。
編輯從服務器的配置文件(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 實例的讀寫分離。