在Debian系統上實現MariaDB的讀寫分離,通常需要以下幾個步驟:
安裝MariaDB: 確保你已經在你的Debian系統上安裝了MariaDB。如果沒有,可以使用以下命令進行安裝:
sudo apt update
sudo apt install mariadb-server mariadb-client
配置主從復制: 讀寫分離的基礎是主從復制。你需要配置一個主服務器和一個或多個從服務器。
配置主服務器:
編輯主服務器的/etc/mysql/mariadb.conf.d/50-server.cnf
文件,添加或修改以下內容:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name # 替換為你要復制的數據庫名稱
重啟MariaDB服務:
sudo systemctl restart mariadb
登錄到MariaDB并創建一個用于復制的用戶:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password'; # 替換為你的密碼
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
查看主服務器的二進制日志位置:
SHOW MASTER STATUS;
記錄下File
和Position
的值。
配置從服務器:
編輯從服務器的/etc/mysql/mariadb.conf.d/50-server.cnf
文件,添加或修改以下內容:
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name # 替換為你要復制的數據庫名稱
read_only = 1
重啟MariaDB服務:
sudo systemctl restart mariadb
登錄到MariaDB并配置復制:
CHANGE MASTER TO
MASTER_HOST='master_ip', # 替換為主服務器的IP地址
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001', # 替換為你記錄的File值
MASTER_LOG_POS=123; # 替換為你記錄的Position值
START SLAVE;
配置讀寫分離: 你可以使用各種工具來實現讀寫分離,例如ProxySQL、MaxScale等。這里以ProxySQL為例:
安裝ProxySQL:
sudo apt install proxysql
配置ProxySQL:
編輯ProxySQL的配置文件/etc/proxysql.cnf
,添加主服務器和從服務器的配置:
[mysql_servers]
server=master_ip,hostname=master_ip,port=3306,weight=10 # 替換為主服務器的IP地址
server=slave_ip,hostname=slave_ip,port=3306,weight=10 # 替換為從服務器的IP地址
[mysql_query_rules]
rule=1,tag='read',active=1
rule=2,tag='write',active=1
啟動ProxySQL:
sudo systemctl start proxysql
sudo systemctl enable proxysql
配置應用程序連接ProxySQL: 修改你的應用程序配置,使其連接到ProxySQL而不是直接連接到MariaDB服務器。
通過以上步驟,你就可以在Debian系統上實現MariaDB的讀寫分離。主服務器負責寫操作,從服務器負責讀操作,從而提高數據庫的性能和可用性。