首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

單機部署多 MySQL 實例與主從復制實戰教程

     編輯:MySQL 資料庫相關知識

第一部分:單機多實例部署

環境規劃

  • OS: Linux 2.6.13 (Slackware)
  • MySQL: 4.0.17 源碼安裝,--prefix=/usr/local/mysql --datadir=/usr/local/mysql/data1 --sysconfdir=/etc
  • 目標:同一物理機運行 4 個實例,端口 3306-3309,數據目錄獨立。

核心配置 /etc/my.cnf

使用 mysqld_multi 管理,關鍵在 [mysqld#] 區塊(GNR 編號)分別指定 port、socket、pid-file、datadir、log。示例:

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = mysql
password = mypasswd

[mysqld1]
port = 3306
socket = /tmp/mysql.sock1
datadir = /usr/local/mysql/data1
...
[mysqld2]
port = 3307
socket = /tmp/mysql.sock2
datadir = /usr/local/mysql/data2
...

初始化各實例數據目錄

[mysqld1] 安裝時已存在。其餘實例需創建目錄、複製 mysql 系統庫並授權:

mkdir /usr/local/mysql/data2
cp -R /usr/local/mysql/data1/mysql /usr/local/mysql/data2
chown -R mysql.mysql /usr/local/mysql/data2

mysqld_multi 常用命令

/usr/local/mysql/bin/mysqld_multi --config-file=/etc/my.cnf start 1-4
/usr/local/mysql/bin/mysqld_multi --config-file=/etc/my.cnf report 1-4

驗證:ps aux 可見四個 mysqld_safe 進程分別監聽不同端口/套接字。

客戶端連接

必須顯式指定 -P port,否則默認連 3306。

第二部分:多主服務器構建(含 Binlog)

在 my.cnf 各實例添加 log-bin、server-id 等復制參數,啟動後各實例獨立產生二進制日誌,可作為主庫。

第三部分:從服務器搭建

  1. 主庫停服務,打包各 datadir(tar),傳輸到從機解壓。
  2. 確保從機數據目錄權限正確(chown -R mysql.mysql)。
  3. 從庫 my.cnf 配置 server-id=2、master-host、master-user/password/port、log-slave-updates 等。
  4. 雙邊啟動 mysqld_multi start 1-4,主庫變更自動復制到對應從庫。

未來展望:多主一從融合架構

計劃將 Server A、B 的不同業務庫融合復制到單一 Server C,實現跨主庫的聚合備份。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved