首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 單實例與多實例安裝部署腳本詳解 (基於源碼編譯)

     編輯:MySQL 綜合教學

MySQL 單實例與多實例安裝部署腳本詳解 (基於源碼編譯)

本文提供基於 CentOS 環境,使用 CMake 編譯安裝 MySQL 5.5.32 的單實例與多實例完整步驟腳本,適用於學習與測試環境快速部署。

通用前置準備


# 設置主機名
sed -i '2s/localhost.localdomain/mysql/' /etc/sysconfig/network
hostname mysql

# 安裝編譯依賴
yum -y install ncurses-devel gcc gcc-c++ libaio-devel

# 創建 mysql 用戶
useradd mysql -s /sbin/nologin -M

編譯安裝 MySQL (單/多實例共用)


# 安裝 CMake
tar xf cmake-2.8.8.tar.gz && cd cmake-2.8.8
./configure && gmake && gmake install
cd ..

# 編譯安裝 MySQL 5.5.32
tar xf mysql-5.5.32.tar.gz && cd mysql-5.5.32
cmake . \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
  -DENABLED_LOCAL_INFILE=ON \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
  -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
  -DWITH_ZLIB=bundled \
  -DWITH_READLINE=1 \
  -DWITH_EMBEDDED_SERVER=1 \
  -DWITH_DEBUG=0
make && make install

單實例配置與啟動


# 配置文件與權限
cp support-files/my-small.cnf /etc/my.cnf
ln -s /usr/local/mysql/bin/* /usr/local/sbin
chmod -R 1777 /tmp
chown -R mysql:mysql /usr/local/mysql

# 初始化數據目錄
cd /usr/local/mysql/scripts/
./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

# 註冊服務
cp /opt/mysql-5.5.32/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
service mysqld start
chkconfig mysqld on

# 安全初始化
mysql -e "DELETE FROM mysql.user WHERE user='';"
mysql -e "DELETE FROM mysql.user WHERE host='localhost.localdomain';"
mysql -e "DELETE FROM mysql.user WHERE host='::1';"
mysql -e "DROP DATABASE test;"
mysqladmin -u root password "wsyht123"

多實例配置 (端口 3306/3307/3308)


# 創建實例目錄結構
mkdir -p /data/{3306,3307,3308}/{data,logs,tmp}

# 複製配置文件與啟動腳本 (需根據端口修改 my.cnf 中的 port, socket, datadir, log-error, pid-file 等)
cp /opt/my.cnf /data/3306/my.cnf
cp /opt/my.cnf /data/3307/my.cnf
cp /opt/my.cnf /data/3308/my.cnf
cp /opt/mysql /data/3306/mysql
cp /opt/mysql /data/3307/mysql
cp /opt/mysql /data/3308/mysql

# 權限
chown -R mysql:mysql /data
chown -R mysql:mysql /usr/local/mysql

# 初始化各實例數據目錄
cd /usr/local/mysql/scripts
./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3306/data/ --user=mysql
./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql
./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3308/data/ --user=mysql

# 啟動實例 (使用各自的 mysql 腳本)
/data/3306/mysql start
/data/3307/mysql start
/data/3308/mysql start

關鍵點提示

  • 多實例核心在於 獨立的 datadir、socket、port、pid-file、log-error 配置。
  • 生產環境建議使用二進制包或包管理器安裝,並配置 systemd 管理多實例服務。
  • 實例間盡量隔離物理資源 (磁盤、CPU 綁定) 以避免相互影響。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved