/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_timeexpire_logs_days=7 防止 Binlog 佔滿磁盤mysql_secure_installation 完成安全加固MySQL 5.6 已結束生命週期(EOL 2021/02),新項目建議:
docker run mysql:8.0 避免編譯維護成本