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

CentOS 5.2 多實例 MySQL 5.1.33 編譯安裝與配置詳解

     編輯:MySQL 資料庫相關知識

在單台伺服器運行多個 MySQL 實例,需隔離安裝路徑、數據目錄、端口、Socket、配置文件與啟動腳本。本文以 MySQL 5.1.33 為例,演示雙實例(3306/3307)部署全過程。

實例一:基礎安裝 (Port 3306)

# 用戶與解壓
groupadd mysql; useradd -g mysql mysql -s /bin/nologin -d /usr/local/mysql
tar -zxvf mysql-5.1.33.tar.gz && cd mysql-5.1.33

# 編譯參數
./configure --prefix=/usr/local/mysql \
  --enable-assembler --with-extra-charsets=complex \
  --enable-thread-safe-client --with-big-tables \
  --with-readline --with-ssl --with-embedded-server \
  --enable-local-infile --with-plugins=innobase
make && make install

# 權限與配置
chown -R mysql:mysql /usr/local/mysql
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf

# 初始化與啟動
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
echo "/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &" >> /etc/rc.local

# 設密碼與遠程帳號
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
mysqladmin -u root password '1234'
grant all on *.* to 'mysql3306'@'%' identified by 'mysql3306';

實例二:獨立安裝 (Port 3307)

useradd -g mysql mysql3307 -s /bin/nologin -d /usr/local/mysql3307
tar -zxvf mysql-5.1.33.tar.gz && cd mysql-5.1.33
./configure --prefix=/usr/local/mysql3307 \
  --enable-assembler --with-extra-charsets=complex \
  --enable-thread-safe-client --with-big-tables \
  --with-readline --with-ssl --with-embedded-server \
  --enable-local-infile --with-plugins=innobase
make && make install

chown -R mysql3307:mysql /usr/local/mysql3307
chmod -R 755 /usr/local/mysql3307
cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql3307/my.cnf

修改 my.cnf 關鍵差異化配置

[mysqld]
port = 3307
socket = /tmp/mysql3307.sock
datadir = /usr/local/mysql3307/data
pid-file = /usr/local/mysql3307/mysqld.pid

初始化與啟動

/usr/local/mysql3307/bin/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/usr/local/mysql3307/data --user=mysql3307
/bin/sh /usr/local/mysql3307/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/my.cnf &
echo "/bin/sh /usr/local/mysql3307/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/my.cnf &" >> /etc/rc.local

# 修正配置文件權限警告
chmod 644 /usr/local/mysql3307/my.cnf

# 設密碼與連接測試
mysqladmin -P 3307 -S /tmp/mysql3307.sock -u root password '1q2w3e'
grant all on *.* to 'mysql3307'@'%' identified by 'mysql3307';

關鍵隔離點清單

  • 安裝目錄:/usr/local/mysql vs /usr/local/mysql3307
  • 數據目錄:datadir 分離
  • 端口:3306 / 3307
  • Socket:/tmp/mysql.sock / /tmp/mysql3307.sock
  • PID 文件:分離避免衝突
  • 運行用戶:mysql / mysql3307
  • 配置文件:my.cnf 獨立

遵循「一實例一用戶、一目錄、一端口、一配置」原則,即可在單機穩定運行多個 MySQL 版本或實例。

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