溫馨提示×

Ubuntu MariaDB如何進行讀寫分離

小樊
34
2025-06-07 07:40:38
欄目: 云計算

在Ubuntu上配置MariaDB的讀寫分離,可以通過設置主從復制來實現。以下是詳細的步驟:

1. 安裝MariaDB

首先,確保你已經在兩臺服務器上安裝了MariaDB。你可以使用以下命令來安裝:

sudo apt update
sudo apt install mariadb-server

2. 配置主服務器

在主服務器上進行以下配置:

編輯主服務器的配置文件

打開/etc/mysql/mariadb.conf.d/50-server.cnf文件:

sudo nano /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并創建一個用于復制的用戶:

mysql -u root -p

在MySQL命令行中執行以下SQL語句:

CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';  # 替換為你的密碼
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;

獲取主服務器的二進制日志位置

在MySQL命令行中執行以下SQL語句:

SHOW MASTER STATUS;

記下FilePosition的值,稍后會用到。

3. 配置從服務器

在從服務器上進行以下配置:

編輯從服務器的配置文件

打開/etc/mysql/mariadb.conf.d/50-server.cnf文件:

sudo nano /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  # 替換為你要復制的數據庫名稱

保存并退出編輯器,然后重啟MariaDB服務:

sudo systemctl restart mariadb

配置復制

登錄到MariaDB并配置復制:

mysql -u root -p

在MySQL命令行中執行以下SQL語句:

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;

檢查復制狀態:

SHOW SLAVE STATUS\G

確保Slave_IO_RunningSlave_SQL_Running都是Yes。

4. 配置讀寫分離

你可以使用MySQL Router或者應用程序級別的邏輯來實現讀寫分離。以下是一個簡單的示例,使用HAProxy來實現讀寫分離。

安裝HAProxy

在兩臺服務器上安裝HAProxy:

sudo apt update
sudo apt install haproxy

配置HAProxy

編輯HAProxy配置文件:

sudo nano /etc/haproxy/haproxy.cfg

添加以下配置:

global
    log /dev/log local0
    log /dev/log local1 notice
    daemon

defaults
    log global
    mode tcp
    option tcplog
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend mysql_front
    bind *:3306
    default_backend mysql_back

backend mysql_back
    balance roundrobin
    server master 192.168.1.101:3306 check  # 替換為主服務器的IP地址和端口
    server slave 192.168.1.102:3306 check  # 替換為從服務器的IP地址和端口

保存并退出編輯器,然后重啟HAProxy服務:

sudo systemctl restart haproxy

5. 測試讀寫分離

現在,你可以通過HAProxy連接到MariaDB,并進行讀寫操作。寫操作會自動路由到主服務器,而讀操作會自動路由到從服務器。

通過以上步驟,你就可以在Ubuntu上實現MariaDB的讀寫分離。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女