溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql5.5.23主從復制配置方法

發布時間:2021-07-24 14:45:15 來源:億速云 閱讀:240 作者:chen 欄目:云計算
# MySQL5.5.23主從復制配置方法

## 目錄
1. [主從復制原理概述](#主從復制原理概述)
2. [環境準備](#環境準備)
3. [主服務器配置](#主服務器配置)
4. [從服務器配置](#從服務器配置)
5. [初始化數據同步](#初始化數據同步)
6. [啟動復制進程](#啟動復制進程)
7. [常見問題排查](#常見問題排查)
8. [性能優化建議](#性能優化建議)
9. [主從切換方案](#主從切換方案)
10. [日常維護命令](#日常維護命令)

## 主從復制原理概述

MySQL主從復制(Replication)是指數據可以從一個MySQL數據庫服務器(主服務器)復制到一個或多個MySQL數據庫服務器(從服務器)。其核心原理基于以下三個線程的協作:

1. **Binlog Dump線程**(主服務器)
   - 負責讀取主服務器上的二進制日志(binary log)
   - 將日志事件發送給從服務器的I/O線程

2. **I/O線程**(從服務器)
   - 連接到主服務器并請求二進制日志內容
   - 將獲取的日志事件寫入從服務器的中繼日志(relay log)

3. **SQL線程**(從服務器)
   - 讀取中繼日志中的事件
   - 在從服務器上重放這些事件

![主從復制原理圖](https://example.com/mysql-replication.png)

## 環境準備

### 硬件要求
| 組件       | 最低配置要求       |
|------------|-------------------|
| 主服務器   | 4核CPU, 8GB內存   |
| 從服務器   | 2核CPU, 4GB內存   |
| 網絡帶寬   | 建議≥100Mbps      |

### 軟件版本
- 操作系統:CentOS 7.x
- MySQL版本:5.5.23(需確保主從版本一致)
- 防火墻配置:開放3306端口

```bash
# 檢查MySQL版本
mysql> SELECT VERSION();

主服務器配置

1. 修改my.cnf配置文件

[mysqld]
server-id = 1                   # 必須唯一
log-bin = mysql-bin             # 啟用二進制日志
binlog-format = ROW             # 推薦使用ROW格式
binlog-do-db = your_database    # 需要復制的數據庫
expire_logs_days = 7            # 日志保留天數
sync_binlog = 1                 # 每次事務提交都同步日志

2. 創建復制專用賬戶

CREATE USER 'repl'@'%' IDENTIFIED BY 'Repl@123';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

3. 鎖定數據庫并獲取位置信息

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

記錄輸出中的File和Position值,例如:

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 107      | your_database|                  |
+------------------+----------+--------------+------------------+

從服務器配置

1. 修改my.cnf配置文件

[mysqld]
server-id = 2                   # 必須唯一且不同于主服務器
relay-log = mysql-relay-bin     # 中繼日志名稱
log-slave-updates = 1           # 允許從服務器寫二進制日志
read-only = 1                   # 設置從服務器為只讀
replicate-do-db = your_database # 需要復制的數據庫

2. 配置主從連接信息

CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='Repl@123',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=107;

初始化數據同步

方法一:使用mysqldump(推薦小數據庫)

# 在主服務器執行
mysqldump -uroot -p --all-databases --master-data > dbdump.sql

# 在從服務器導入
mysql -uroot -p < dbdump.sql

方法二:使用物理備份(大數據庫)

# 主服務器停止服務后復制數據文件
systemctl stop mysql
rsync -avz /var/lib/mysql slave_ip:/var/lib/mysql

啟動復制進程

1. 在從服務器執行

START SLAVE;

2. 檢查復制狀態

SHOW SLAVE STATUS\G

關鍵指標檢查: - Slave_IO_Running: Yes - Slave_SQL_Running: Yes - Seconds_Behind_Master: 0

常見問題排查

問題1:IO線程連接失敗

錯誤現象

Last_IO_Error: error connecting to master

解決方案: 1. 檢查網絡連通性 2. 驗證復制賬號權限 3. 確認防火墻設置

問題2:SQL線程錯誤

錯誤現象

Last_SQL_Error: Could not execute Write_rows event

解決方案

STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;

性能優化建議

1. 主服務器優化

innodb_flush_log_at_trx_commit = 1
sync_binlog = 1

2. 從服務器優化

slave_parallel_workers = 4      # 并行復制線程數
slave_net_timeout = 60          # 網絡超時時間

3. 監控指標

SHOW GLOBAL STATUS LIKE 'Slave_running';
SHOW PROCESSLIST;

主從切換方案

計劃內切換流程

  1. 停止主庫寫入
  2. 確保從庫完全同步
  3. 提升從庫為主庫
STOP SLAVE;
RESET MASTER;

故障切換流程

  1. 確認主庫不可用
  2. 選擇最新的從庫
  3. 修復數據一致性

日常維護命令

監控命令

-- 查看復制延遲
SHOW SLAVE STATUS\G

-- 查看二進制日志
SHOW BINARY LOGS;

維護命令

-- 重置復制
RESET SLAVE ALL;

-- 跳過錯誤
SET GLOBAL sql_slave_skip_counter = N;

日志清理

PURGE BINARY LOGS TO 'mysql-bin.000010';

總結

MySQL5.5.23主從復制配置需要特別注意版本兼容性和參數配置。本文詳細介紹了從環境準備到日常維護的全流程,建議在生產環境實施前進行充分測試。定期監控復制狀態和延遲是保證數據一致性的關鍵。

注意:本文基于MySQL5.5.23編寫,不同版本可能存在配置差異。建議在實施前查閱對應版本的官方文檔。 “`

注:實際使用時請將示例IP、密碼等敏感信息替換為實際值,圖片鏈接需替換為有效地址。本文約為3000字,要達到4900字需要擴展每個章節的詳細說明、增加更多配置示例和原理分析。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

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