萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

CentOS 6.3 源碼編譯安裝 MySQL 5.6.10 完整實戰:CMake 參數、目錄分離、密碼初始化

環境與規劃

  • OS:CentOS 6.3 最小化安裝
  • 目標:MySQL 5.6.10 源碼編譯,**程序目錄 / 數據目錄分離**
  • 程序目錄:/usr/local/mysql
  • 數據目錄:/db/mysql/data

前置準備

# 1. 系統更新
yum -y update

# 2. 防火牆開放 3306
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart

# 3. 創建用戶組/用戶
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 4. 創建目錄並授權
mkdir -p /usr/local/mysql /db/mysql/data
chown -R mysql:mysql /usr/local/mysql /db/mysql/data

# 5. 環境變量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

# 6. hosts 解析
echo '192.168.211.100 centhost.centdomain' >> /etc/hosts

# 7. 編譯依賴
yum -y install wget gcc-c++ ncurses-devel cmake make perl

源碼獲取與編譯

cd /usr/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz/from/https://cdn.mysql.com/
tar -zxvf mysql-5.6.10.tar.gz
cd mysql-5.6.10

# CMake 配置(關鍵參數逐行說明)
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/db/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306

# 編譯(視 CPU 核心數加 -jN 加速)
make -j$(nproc)

# 安裝
make install

初始化與服務註冊

# 1. 複製默認配置
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

# 2. 初始化數據目錄(5.6 專用腳本)
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/db/mysql/data

# 3. 註冊服務
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

# 4. 啟動服務
service mysql start

# 5. 開機自啟
chkconfig mysql on

安全初始化與遠程授權

mysql -u root
# 進入 mysql>

USE mysql;

-- 允許 root 遠程登錄(生產環境建議專用賬號)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'RootPass123!';

-- 修改本地 root 密碼
UPDATE user SET Password = PASSWORD('RootPass123!') WHERE User = 'root';

-- 驗證
SELECT Host, User, Password FROM user WHERE User = 'root';

FLUSH PRIVILEGES;
EXIT;

後續優化建議

  • 編輯 /etc/my.cnf 調整 innodb_buffer_pool_size(內存 50-70%)
  • 配置 log-error、slow_query_log、long_query_time
  • 設置 expire_logs_days=7 防止 Binlog 佔滿磁盤
  • 運行 mysql_secure_installation 完成安全加固

版本升級提示

MySQL 5.6 已結束生命週期(EOL 2021/02),新項目建議:

  • MySQL 8.0 LTS(官方支持至 2026/04)
  • Percona Server 8.0 / MariaDB 10.6+(性能增強、開源友好)
  • 容器化部署:docker run mysql:8.0 避免編譯維護成本
copyright © 萬盛學電腦網 all rights reserved