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

單機部署多個 MySQL 實例完整步驟:目錄規劃、編譯安裝、多埠啟動與安全加固

     編輯:MySQL 資料庫相關知識

在一台伺服器運行多個 MySQL 實例(如 5.5.32 與 5.6.31 並存),關鍵在於目錄隔離、埠號區分、Socket 獨立、資料目錄分離。本文以 CentOS 6.8 原始碼編譯安裝為例,提供完整可複製執行的步驟。

環境規劃

用途實例 1 (5.5.32)實例 2 (5.6.31)
軟體安裝目錄/mysqlsoft/mysql1/mysqlsoft/mysql2
資料目錄/data/mysql1/data/mysql2
Socket 檔案/mysqlsoft/mysql1/mysql.sock/mysqlsoft/mysql2/mysql.sock
TCP 埠號33013302

1. 建立使用者與目錄

groupadd mysql
useradd mysql -g mysql

mkdir -p /mysqlsoft/mysql1 /mysqlsoft/mysql2
mkdir -p /data/mysql1 /data/mysql2

chown -R mysql:mysql /mysqlsoft/mysql1 /mysqlsoft/mysql2
chown -R mysql:mysql /data/mysql1 /data/mysql2

2. 安裝編譯工具

yum install -y cmake make gcc perl

3. 編譯安裝 MySQL 5.5.32

cd /mysqlsoft/mysql1
tar -zxvf mysql-5.5.32.tar.gz
mkdir bootstrap && cd bootstrap

cmake .. \
  -DCMAKE_INSTALL_PREFIX=/mysqlsoft/mysql1 \
  -DMYSQL_DATADIR=/data/mysql1 \
  -DSYSCONFDIR=/mysqlsoft/mysql1 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  -DMYSQL_TCP_PORT=3301 \
  -DMYSQL_UNIX_ADDR=/mysqlsoft/mysql1/mysql.sock

make && make install

安裝後設定

cd /mysqlsoft/mysql1
cp support-files/my-default.cnf my.cnf
# 編輯 my.cnf 加入 [mysqld] 區段:basedir、datadir、port、socket、character-set-server=utf8 等
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql

4. 編譯安裝 MySQL 5.6.31

cd /mysqlsoft/mysql2
tar -zxvf mysql-5.6.31.tar.gz
mkdir bootstrap && cd bootstrap

cmake .. \
  -DCMAKE_INSTALL_PREFIX=/mysqlsoft/mysql2 \
  -DMYSQL_DATADIR=/data/mysql2 \
  -DSYSCONFDIR=/mysqlsoft/mysql2 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  -DMYSQL_TCP_PORT=3302 \
  -DMYSQL_UNIX_ADDR=/mysqlsoft/mysql2/mysql.sock

make && make install

安裝後設定

cd /mysqlsoft/mysql2
cp support-files/my-default.cnf my.cnf
# 編輯 my.cnf 同樣設定 basedir、datadir、port=3302、socket 等
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql

5. 啟動雙實例

# 實例 1
cd /mysqlsoft/mysql1
bin/mysqld_safe --user=mysql &

# 實例 2
cd /mysqlsoft/mysql2
bin/mysqld_safe --user=mysql &

6. 驗證與安全加固

ps -ef | grep mysql
# 應看到兩組 mysqld 進程,分別指向不同 basedir、datadir、port、socket

# 每個實例分別執行安全腳本
/mysqlsoft/mysql1/bin/mysql_secure_installation
/mysqlsoft/mysql2/bin/mysql_secure_installation
# 內容:設定 root 密碼、移除匿名使用者、禁止 root 遠端登入、移除 test 資料庫
生產建議:
• 使用 systemd 或 mysqld_multi 管理多實例服務。
• 不同實例配置獨立的 my.cnf,避免參數衝突。
• 監控腳本需指定對應的 socket 或 port 連線檢查。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved