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

CentOS 6.6 環境下 MySQL 5.6 源碼編譯安裝全過程實錄

     編輯:MySQL 綜合教學

環境與前提

  • OS: CentOS 6.6 (Minimal 安裝)
  • 內存: 512 MB (低內存環境,需注意緩衝池配置)
  • 目標版本: MySQL 5.6.25
  • 安裝方式: 源碼編譯 (cmake + make)

1. 安裝編譯依賴包

yum -y install gcc gcc-c++ wget make cmake ncurses-devel bison

2. 創建專用用戶與組

useradd -r -s /sbin/nologin mysql

-r 創建系統用戶,-s /sbin/nologin 禁止登入,符合最小權限原則。

3. 下載、解壓、編譯安裝

cd /usr/local/src
wget ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz
tar zxf mysql-5.6.25.tar.gz
cd mysql-5.6.25

# 採用默認 cmake 參數編譯(生產建議顯式指定關鍵路徑,見下文)
cmake .
make && make install

常用 CMake 關鍵參數參考

參數說明示例值
-DCMAKE_INSTALL_PREFIX安裝根目錄/usr/local/mysql
-DMYSQL_DATADIR數據目錄/data/mysql
-DMYSQL_TCP_PORT監聽端口3306
-DDEFAULT_CHARSET默認字符集utf8mb4
-DDEFAULT_COLLATION默認排序規則utf8mb4_unicode_ci
-DSYSCONFDIR配置文件目錄/etc/mysql
-DMYSQL_UNIX_ADDRSocket 文件路徑/tmp/mysql.sock
-DWITH_INNOBASE_STORAGE_ENGINE啟用 InnoDB1
-DWITH_PARTITION_STORAGE_ENGINE啟用分區1

完整參數列表請參考:官方文檔

4. 部署後初始化與權限設置

cd /usr/local
chown -R root:mysql mysql/
chown -R mysql mysql/data/

# 複製啟動腳本與默認配置
cp mysql/support-files/mysql.server /etc/init.d/mysqld
cp mysql/support-files/my-default.cnf /etc/my.cnf

# 初始化系統表 (5.6 版本)
./mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/

# 環境變量
echo "export PATH=\$PATH:/usr/local/mysql/bin/" >> /etc/profile
source /etc/profile

5. 啟動驗證與常見報錯處理

service mysqld start
netstat -lnpt | grep 3306

低內存環境啟動失敗案例

報錯:Starting MySQL...The server quit without updating PID file [FAILED]

日志提示內存不足 (需 ≥ 1GB)。解決方案:

  • 使用 MySQL 5.5 提供的小內存配置模板 my-small.cnf 覆蓋 /etc/my.cnf
  • 關鍵調小參數:innodb_buffer_pool_size=64M、key_buffer_size=16M、table_open_cache=256 等
  • 或添加 Swap 緩解(生產不推薦長期依賴 Swap)

6. 根用戶密碼設置與遠程授權

# 首次登入 (5.6 默認無密碼或隨機密碼在 ~/.mysql_secret)
mysql

# 方式一:mysqladmin
mysqladmin -uroot -p password 'NewPass123!'

# 方式二:SQL 更新 user 表
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
FLUSH PRIVILEGES;

# 方式三:GRANT 授權 (同時開放遠程訪問)
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPass123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;

7. 忘記 Root 密碼的應急恢復

# 1. 停止服務
/etc/init.d/mysqld stop

# 2. 跳過授權表啟動
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

# 3. 無密碼登入修改
mysql
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
FLUSH PRIVILEGES;

# 4. 正常重啟
/etc/init.d/mysqld restart

總結與避坑提示

  1. 內存評估:源碼編譯前務必確認 innodb_buffer_pool_size 與物理內存匹配,512MB 機器建議改用二進制包 + 小內存配置或升級內存。
  2. 路徑規範:生產環境請顯式指定 CMAKE_INSTALL_PREFIX、MYSQL_DATADIR 等,避免默認路徑導致維護混亂。
  3. 安全加固:安裝完成後執行 mysql_secure_installation 移除匿名用戶、禁止 root 遠程登入、刪除 test 庫。
  4. 版本選擇:MySQL 5.6 已停止維護 (EOL 2021-02),新項目建議直接部署 MySQL 8.0 LTS 或 Percona Server 8.0。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved