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

CentOS 6.5 編譯安裝 MySQL 5.6.16 完整教程:從源碼到生產就緒

     編輯:MySQL 綜合教學

前置準備:編譯工具鏈與依賴庫

# 安裝核心編譯工具
yum install -y gcc gcc-c++ ncurses-devel perl cmake

# 或手動編譯 cmake 2.8.10+ (源碼安裝 mysql 5.6 需要)
wget https://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzf cmake-2.8.10.2.tar.gz && cd cmake-2.8.10.2
./bootstrap && make && make install
cd ..

系統用戶與目錄規劃


# 建立專用用戶/組 (無登錄 shell)
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 目錄規劃 (遵循 FHS)
mkdir -p /usr/local/mysql          # 安裝根目錄
mkdir -p /data/mysqldb             # 數據目錄 (獨立掛載點最佳)
mkdir -p /var/log/mysql            # 日誌目錄
mkdir -p /var/run/mysql            # PID/Socket 目錄
chown -R mysql:mysql /usr/local/mysql /data/mysqldb /var/log/mysql /var/run/mysql

源碼獲取與解壓


wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.16.tar.gz
# 或鏡像站
tar -xzf mysql-5.6.16.tar.gz
cd mysql-5.6.16

CMake 配置參數深度解析


cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/data/mysqldb \
  -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_general_ci \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  -DMYSQL_TCP_PORT=3306 \
  -DENABLED_LOCAL_INFILE=1 \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DWITH_DEBUG=0
參數說明生產建議
CMAKE_INSTALL_PREFIX安裝根目錄/usr/local/mysql
MYSQL_DATADIR數據目錄獨立分區 /data/mysqldb
DEFAULT_CHARSET預設字元集utf8mb4 (支援 Emoji)
WITH_INNOBASE_STORAGE_ENGINEInnoDB 引擎1 (必須)
WITH_PERFSCHEMA_STORAGE_ENGINEPerformance Schema1 (監控必備)
CMAKE_BUILD_TYPE編譯優化等級RelWithDebInfo (帶調試符號的優化版)

編譯安裝執行


# 編譯 (根據 CPU 核心數調整 -j)
make -j$(nproc)

# 安裝
make install

# 驗證
/usr/local/mysql/bin/mysql --version

安裝後初始化配置

1. 配置文件部署


cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
# 或針對 5.6 建議配置模版
cat > /etc/my.cnf <<'EOF'
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysqldb
socket=/var/run/mysql/mysql.sock
pid-file=/var/run/mysql/mysqld.pid
port=3306
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
max_connections=1000
max_connect_errors=100000
open_files_limit=65535
table_open_cache=2048
max_allowed_packet=64M
binlog_format=ROW
log-bin=mysql-bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=1
master_info_repository=TABLE
relay_log_info_repository=TABLE
sync_binlog=1
innodb_flush_log_at_trx_commit=1
innodb_buffer_pool_size=2G  # 物理內存 60-70%
innodb_log_file_size=512M
innodb_log_files_in_group=2
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
log_queries_not_using_indexes=1
EOF

2. 初始化系統表


cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb --basedir=/usr/local/mysql

3. SSL/RSA 文件生成 (5.6+)


/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysqldb

4. 啟動腳本與環境變數


cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

# 環境變數
echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

5. 目錄權限最終確認


chown -R mysql:mysql /usr/local/mysql /data/mysqldb /var/log/mysql /var/run/mysql
chmod 750 /data/mysqldb
chmod 755 /var/run/mysql

啟動驗證與安全加固

啟動服務


service mysqld start
# 或 systemctl start mysqld (CentOS 7+)

驗證連接


netstat -tulnp | grep 3306
mysql -uroot -p -S /var/run/mysql/mysql.sock
# 初始無密碼,直接回車

安全初始化腳本 (強烈建議)


/usr/local/mysql/bin/mysql_secure_installation
# 設置 root 密碼、移除匿名用戶、禁止 root 遠程登錄、移除 test 庫

手動設置密碼 (備選)


mysqladmin -uroot -S /var/run/mysql/mysql.sock password 'StrongP@ssw0rd!'

常見錯誤排查速查表

錯誤現象原因分析解決方案
Starting MySQL..The server quit without updating PID filedatadir 配置錯誤、權限問題、殘留進程檢查 my.cnf datadir、chown mysql:mysql、kill 殘留進程
ERROR 2002: Can't connect through socket '/tmp/mysql.sock'socket 路徑不匹配ln -s /var/run/mysql/mysql.sock /tmp/mysql.sock 或指定 -S 參數
bash: mysql: command not foundPATH 未生效source /etc/profile.d/mysql.sh 或重新登錄
CMake 錯誤: CMakeCache.txt exists重複配置未清理rm CMakeCache.txt 後重新 cmake
編譯失敗: ncurses not found缺少開發庫yum install ncurses-devel

生產環境優化清單

  1. 獨立數據盤:/data/mysqldb 掛載 RAID10/SSD,掛載參數 noatime,nodiratime
  2. 禁用透明大頁:echo never > /sys/kernel/mm/transparent_hugepage/enabled 加入 rc.local
  3. 調整文件句柄:ulimit -n 65535、/etc/security/limits.conf 添加 mysql 用戶
  4. Swappiness:vm.swappiness=1 (避免 swap 影響延遲)
  5. NTP 時間同步:ntpdate pool.ntp.org、配置 chronyd
  6. 防火牆:僅開放應用服務器 IP 訪問 3306
  7. 備份腳本:XtraBackup 物理備份 + Binlog 增量
  8. 監控接入:Prometheus + mysqld_exporter / PMM

總結

編譯安裝 MySQL 5.6 雖然步驟繁多,但能精確控制特性、優化參數、適配硬體。關鍵成功因素:cmake 參數精準、數據目錄獨立、utf8mb4 全鏈路、GTID 啟用、安全腳本執行、生產優化清單落地。現代部署建議優先考慮二進制包、Docker 或包管理器,編譯安裝保留給極致定製化場景。

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