溫馨提示×

centos mysql讀寫分離操作

小樊
41
2025-04-22 15:17:05
欄目: 云計算

在CentOS上實現MySQL讀寫分離,通常涉及到配置主從復制(Master-Slave Replication)以及使用負載均衡器或應用程序邏輯來分發讀寫請求。以下是實現MySQL讀寫分離的基本步驟:

1. 準備工作

  • 兩臺或多臺服務器:一臺作為主服務器(Master),其余作為從服務器(Slave)。
  • MySQL安裝:確保所有服務器上都安裝了MySQL。

2. 配置主服務器(Master)

  1. 編輯主服務器的MySQL配置文件(通常是/etc/my.cnf/etc/mysql/my.cnf),添加以下內容:
    [mysqld]
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = your_database_name  # 替換為你要復制的數據庫名稱
    
  2. 重啟MySQL服務:
    sudo systemctl restart mysqld
    
  3. 登錄到MySQL,創建一個用于復制的用戶:
    CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';  # 替換為你的密碼
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES;
    
  4. 查看主服務器的二進制日志位置:
    SHOW MASTER STATUS;
    
    記錄下FilePosition的值。

3. 配置從服務器(Slave)

  1. 編輯從服務器的MySQL配置文件,添加以下內容:
    [mysqld]
    server-id = 2  # 每個從服務器的server-id必須唯一
    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
    
  2. 重啟MySQL服務:
    sudo systemctl restart mysqld
    
  3. 登錄到MySQL,配置復制:
    CHANGE MASTER TO
    MASTER_HOST='master_ip',  # 替換為主服務器的IP地址
    MASTER_USER='replicator',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',  # 替換為你記錄的File值
    MASTER_LOG_POS=123;  # 替換為你記錄的Position值
    START SLAVE;
    
  4. 檢查從服務器的復制狀態:
    SHOW SLAVE STATUS\G
    
    確保Slave_IO_RunningSlave_SQL_Running都是Yes。

4. 配置負載均衡器或應用程序邏輯

你可以使用HAProxy、MaxScale或其他負載均衡器來分發讀請求到從服務器,寫請求到主服務器。

使用HAProxy示例

  1. 安裝HAProxy:
    sudo yum install haproxy
    
  2. 編輯HAProxy配置文件(通常是/etc/haproxy/haproxy.cfg),添加以下內容:
    frontend mysql_front
        bind *:3306
        default_backend mysql_back
    
    backend mysql_back
        balance roundrobin
        server master 192.168.1.101:3306 check  # 替換為主服務器的IP地址和端口
        server slave1 192.168.1.102:3306 check  # 替換為從服務器的IP地址和端口
        server slave2 192.168.1.103:3306 check  # 替換為從服務器的IP地址和端口
    
  3. 重啟HAProxy服務:
    sudo systemctl restart haproxy
    

5. 測試讀寫分離

  • 寫操作:連接到HAProxy的MySQL端口(例如3306),執行寫操作,確保這些操作在主服務器上執行。
  • 讀操作:連接到HAProxy的MySQL端口(例如3306),執行讀操作,確保這些操作在從服務器上執行。

通過以上步驟,你可以在CentOS上實現MySQL的讀寫分離。根據實際需求,你可能需要進一步調整配置和優化性能。

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