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

CentOS 7 編譯安裝 MySQL 5.6.13 完整實戰筆記:踩坑與解決之路

     編輯:MySQL 資料庫相關知識

因測試環境資源回收,需在全新虛擬機上編譯安裝 MySQL 5.6.13 社區版。本文完整記錄從下載原始碼到服務啟動的全過程,重點分析 CMake 編譯階段的多次報錯與最終解決方案,為同類編譯安裝提供參考。

一、前置準備與原始碼獲取

# 下載原始碼
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz

# 安裝編譯工具鏈
yum install -y cmake make gcc gcc-c++ ncurses-devel libaio-devel bison

# 建立 mysql 用戶與資料目錄
groupadd mysql
useradd -g mysql mysql
mkdir -p /data/mbdata
tar -xvf mysql-5.6.13.tar.gz
cd mysql-5.6.13

二、CMake 配置與編譯踩坑記

第一輪:缺少編譯器

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql56 \
  -DMYSQL_DATADIR=/data56 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DMYSQL_UNIX_ADDR=/data56/mysql.sock \
  -DMYSQL_USER=mysql \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci

報錯:CMAKE_C_COMPILER not found、CMAKE_CXX_COMPILER not found

原因:未安裝 gcc/g++ 編譯器。

解決:yum install -y gcc gcc-c++

第二輪:缺少系統庫導致 TestBigEndian.cmake 失敗

安裝 gcc 後再次 cmake,報錯:no suitable type found 在 TestBigEndian.cmake:31。

嘗試:補裝 ncurses-devel、libaio、bison 等依賴,仍報相同錯誤。

第三輪:關鍵突破 —— 重新解壓原始碼

發現多次在同一建構目錄下反覆 cmake 會殘留錯誤快取。徹底清理並重新解壓:

cd /root
rm -rf mysql-5.6.13
tar -xvf mysql-5.6.13.tar.gz
cd mysql-5.6.13
# 再次執行相同 cmake 命令

結果:配置成功完成,輸出 Configuring done、Generating done、Build files have been written to: /root/mysql-5.6.13。

核心心得:CMake 會在建構目錄生成 CMakeCache.txt 等快取檔案,若前序依賴缺失導致配置失敗,後續補齊依賴後直接重跑 cmake 往往無法刷新快取,必須 刪除建構目錄重新解壓原始碼 或執行 make clean/rm -rf CMakeCache.txt CMakeFiles 才能獲得乾淨環境。

三、編譯安裝與初始化

# 編譯(視 CPU 核心數可加 -j 參數加速)
time make
time make install

# 初始化資料目錄
cd /usr/local/mysql56
chown -R mysql .
chgrp -R mysql .
cp support-files/my-default.cnf /etc/my56.cnf
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56 --datadir=/data56 --defaults-file=/etc/my56.cnf

初始化過程中出現 TIMESTAMP with implicit DEFAULT value is deprecated 警告屬正常現象(MySQL 5.6 新特性),不影響功能。執行兩遍初始化確保無殘留問題。

四、服務註冊與啟動驗證

# 註冊系統服務
cp support-files/mysql.server /etc/init.d/mysqld56
chmod 700 /etc/init.d/mysqld56
echo "export PATH=\$PATH:/usr/local/mysql56/bin" >> /etc/profile
source /etc/profile
chkconfig --add mysqld56

# 啟動並測試
service mysqld56 start
mysql -e "SHOW DATABASES;"

成功看到 information_schema、mysql、performance_schema、test 四個預設資料庫,安裝完成。

五、總結與避坑指南

  1. 依賴先行:yum install -y cmake make gcc gcc-c++ ncurses-devel libaio-devel bison 一次裝齊。
  2. 乾淨建構目錄:每次 cmake 前確保原始碼目錄無殘留快取,必要時重新解壓。
  3. 路徑規劃:安裝目錄、資料目錄、Socket 檔案、配置檔路徑提前規劃,避免後續維護混亂。
  4. 字元集:生產環境建議統一 utf8mb4,預設 utf8 存儲 Emoji 會截斷。

編譯安裝雖耗時,但可精確控制版本、模組與優化參數,是 DBA 掌握 MySQL 內核行為的重要途徑。

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