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

CentOS 6.5 編譯安裝 MySQL 5.6.10 完整教程:依賴、CMake、安全加固

     編輯:MySQL 資料庫相關知識

前言:CentOS 6 時代的源碼部署標準流程

雖然 CentOS 6 已停止維護,但存量系統仍在運行。MySQL 5.6 引入 GTID、Online DDL、Performance Schema 增強等特性,源碼編譯安裝能精確控制版本、路徑、引擎模組。本文記錄在 CentOS 6.5 x86_64 上編譯安裝 MySQL 5.6.10 的完整步驟,含依賴解決、CMake 參數、初始化、啟動腳本、安全配置。

一、系統依賴安裝

yum install -y gcc gcc-c++ make cmake \
  openssl-devel pcre-devel bzip2-devel libcurl-devel \
  libjpeg-devel libpng-devel freetype-devel \
  libmcrypt-devel libxslt-devel gmp-devel \
  libxml2-devel mhash ncurses-devel
# 註:ncurses-devel 缺失會導致 CMake 報 "Curses library not found"

二、建立 mysql 用戶與目錄

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql

三、下載、解壓、CMake 配置

cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz
tar zxf mysql-5.6.10.tar.gz
cd mysql-5.6.10

cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.10 \
  -DSYSCONFDIR=/usr/local/mysql-5.6.10/etc \
  -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.10/tmp/mysql.sock \
  -DMYSQL_TCP_PORT=3306 \
  -DMYSQL_USER=mysql \
  -DMYSQL_DATADIR=/data/mysql/data \
  -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 \
  -DENABLED_LOCAL_INFILE=1

注意: MYSQL_USER 參數在 5.6.10 中已廢棄,CMake 會警告「Manually-specified variables were not used」,可忽略。

四、編譯安裝與軟連結

make -j$(nproc) && make install

mkdir -p /usr/local/mysql-5.6.10/etc /usr/local/mysql-5.6.10/tmp
ln -s /usr/local/mysql-5.6.10 /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql-5.6.10 /usr/local/mysql

五、環境變數

echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'export PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile
source /etc/profile

六、初始化資料目錄(5.6 專用 mysql_install_db)

cd /usr/local/mysql
# 先備份/移除系統舊 my.cnf,避免干擾
mv /etc/my.cnf /etc/my.cnf.bak 2>/dev/null

scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data
# 輸出末尾提示設定 root 密碼、運行 mysql_secure_installation

七、配置文件 my.cnf

cat > /usr/local/mysql-5.6.10/my.cnf <<'EOF'
[mysqld]
basedir=/usr/local/mysql-5.6.10
datadir=/data/mysql/data
socket=/usr/local/mysql-5.6.10/tmp/mysql.sock
user=mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server=utf8
collation-server=utf8_general_ci
EOF

八、設定 root 密碼(跳過授權表法)

# 1. 安全模式啟動(跳過授權表、關閉網路)
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# 2. 另開終端免密登入修改密碼
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('YourStrongPass') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;

# 3. 關閉安全模式進程
pkill -f mysqld_safe
pkill -f mysqld

九、註冊系統服務並啟動

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

十、安全加固(生產必做)

/usr/local/mysql/bin/mysql_secure_installation
# 依提示:設 root 密碼(已設則跳過)、移除匿名用戶、禁止 root 遠程登入、移除 test 庫、重新載入權限

十一、應用層帳號最小權限範例

CREATE DATABASE app_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'AppPass123!';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON app_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;

十二、資料目錄權限鎖定

chown -R mysql:mysql /data/mysql/data
chmod -R go-rwx /data/mysql/data

至此,CentOS 6.5 + MySQL 5.6.10 源碼編譯安裝與安全基線配置完成。相同流程適用於 5.6.x 全系列,5.7 僅需將 mysql_install_db 改為 mysqld --initialize 並調整 CMake 參數。

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