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

MySQL 源碼編譯安裝全流程:單實例與多實例部署實戰

     編輯:MySQL 綜合教學

單實例編譯安裝(以 5.1.41 為例)

  1. 解壓並進入目錄:`tar xvfz mysql-5.1.41.tar.gz && cd mysql-5.1.41`
  2. 生成配置腳本(關鍵參數說明):
    echo "CHOST=\"x86_64-pc-linux-gnu\" \
    CFLAGS=\"-march=native -O3 -pipe -fomit-frame-pointer\" \
    CXX=gcc CXXFLAGS=\"-march=native -O3 -pipe -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti\" \
    ./configure --prefix=/usr/local/mysql \
    --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
    --enable-assembler --with-libwrap=/usr/lib/ \
    --with-charset=gbk --with-extra-charsets=gb2312,gbk,big5,latin1,utf8 \
    --with-mysqld-user=mysql --with-big-tables \
    --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static \
    --with-plugins=myisam,myisammrg,innobase,innodb_plugin,heap,csv,partition" > configure.sh
    
  3. 賦權執行編譯安裝:
    chmod +x configure.sh && ./configure.sh && make && make install
    
  4. 創建用戶、初始化、授權、啟動:
    
    groupadd mysql && useradd -g mysql mysql
    cp support-files/my-medium.cnf /etc/my.cnf
    cp support-files/mysql.server /etc/rc.d/init.d/mysqld
    chmod 700 /etc/init.d/mysqld
    chkconfig --add mysqld && chkconfig --level 345 mysqld on
    cd /usr/local/mysql
    bin/mysql_install_db --user=mysql
    chown -R root . && chown -R mysql var && chgrp -R mysql .
    bin/mysqld_safe --user=mysql &
    bin/mysqladmin -uroot -poldpwd password 'NEW_PASSWORD'
    

多實例部署(以 5.1.59 為例)

核心差異:不同端口、不同數據目錄、不同 server-id、獨立配置文件、獨立啟動腳本。

  1. 編譯安裝同單實例(輸出 `configure1.sh`)。
  2. 複製多實例啟動腳本:
    
    cp support-files/mysqld_multi.server /etc/rc.d/init.d/mysqld_multi
    
  3. 初始化多個數據目錄:
    
    bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var21001/
    bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var21002/
    bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var21003/
    
  4. 配置 `my.cnf` 包含多 `[mysqldN]` 組,分別指定 `port`、`datadir`、`socket`、`server-id`、`pid-file`、`log-error`。
  5. 使用 `mysqld_multi start 21001,21002,21003` 啟動對應實例。

主從複製權限授予


GRANT REPLICATION SLAVE ON *.* TO 'repsync'@'%' IDENTIFIED BY '*********';
FLUSH PRIVILEGES;

關鍵提示

  • 編譯報錯常因缺少 `ncurses-devel`,預裝即可。
  • 生產環境建議使用 CMake 編譯(MySQL 5.5+),或直接使用官方二進制包/容器化部署,降低維護成本。
  • 多實例場景下,監控、備份、故障切換均需實例級隔離管理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved