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

Linux 下 MySQL 源碼編譯安裝全過程:依賴解決、配置優化與環境變量

     編輯:MySQL 綜合教學

記錄 SUSE Linux Enterprise Desktop 10 環境下,從源碼包 mysql-5.0.87.tar.gz 純手動編譯安裝 MySQL 的完整踩坑實錄,涵蓋依賴包強制安裝、靜態編譯、配置文件選擇、環境變量設置、初始化與遠程授權。

源碼編譯標準流程

  1. 下載解壓
    
    wget https://mirrors.xxx/mysql-5.0.87.tar.gz
    tar -xzf mysql-5.0.87.tar.gz
    cd mysql-5.0.87
    
  2. 環境檢測與依賴安裝
    
    ./configure --prefix=/usr/local/mysql \
                --with-mysqld-user=mysql \
                --with-unix-socket-path=/tmp/mysql.sock \
                --with-mysqld-ldflags=-all-static   # 靜態編譯,適合 chroot 環境
    

    缺少 gcc/g++/ncurses-devel 等時,從鏡像源下載 RPM 包強制安裝:

    
    sudo rpm -ivh gcc-4.1.2.rpm --force --nodeps
    sudo rpm -ivh gcc-c++.rpm --force --nodeps
    # 依次解決所有缺失依賴
    
  3. 編譯安裝
    
    make
    sudo make install
    
  4. 配置文件部署
    
    ls /usr/local/mysql/share/mysql/my-*.cnf
    # 選擇 my-medium.cnf 複製
    sudo cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
    sudo chown root:sys /etc/my.cnf
    sudo chmod 644 /etc/my.cnf
    
  5. 數據目錄權限與初始化
    
    sudo chmod 777 /usr/local/mysql/var -R   # 或 chown mysql:mysql
    /usr/local/mysql/bin/mysql_install_db --user=mysql
    
  6. 環境變量配置(全局 + 用戶)
    
    # /etc/profile (全局)
    export PATH=/usr/local/mysql/bin:/usr/local/mysql/libexec:$PATH
    
    # ~/.bashrc (用戶)
    export PATH=/usr/local/mysql/bin:/usr/local/mysql/libexec:$PATH
    # 重新登錄或 source 生效
    
  7. 啟動服務與設置密碼
    
    mysqld_safe --user=mysql &    # 後台啟動
    mysqladmin -u root password '123456'
    
  8. 遠程授權
    
    mysql -u root -p
    UPDATE mysql.user SET Host='%' WHERE User='root';
    FLUSH PRIVILEGES;
    

關鍵經驗總結

  • 靜態編譯(--with-mysqld-ldflags=-all-static)省去 chroot 環境下部署動態庫的麻煩,但二進制體積增大。
  • RPM 強制安裝(--force --nodeps)解決依賴地獄,但可能留下系統不一致隱患,生產環境首選源碼編譯依賴庫或使用發行版包管理器。
  • socket 文件路徑統一:--with-unix-socket-path=/tmp/mysql.sock 需與 my.cnf [client] socket 一致,避免客戶端連接失敗。
  • 現代替代:CentOS/RHEL 使用 yum install mysql-community-server,Ubuntu 用 apt install mysql-server,Docker 用 docker run mysql:8.0,極大簡化運維。

源碼編譯雖繁瑣,但能深度理解 MySQL 構建依賴、靜態/動態鏈接、配置文件層級、權限模型等核心機制。

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