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

CentOS 7 編譯安裝 MySQL 5.6.21 完整實戰記錄

     編輯:MySQL 綜合教學

前置依賴安裝

yum -y install gcc gcc-c++ cmake ncurses-devel openssl-devel bison \
  libaio-devel perl-Data-Dumper wget tar gzip

創建用戶、目錄結構

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

mkdir -p /opt/mysql/{data,etc,log,tmp}
chown -R mysql:mysql /opt/mysql

下載、驗證、解壓源碼

cd /usr/local/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.21.tar.gz
# 或使用官方鏡像
tar zxvf mysql-5.6.21.tar.gz
chown -R mysql:mysql mysql-5.6.21

編譯配置 (CMake 關鍵參數)

cd mysql-5.6.21
cmake \
  -DCMAKE_INSTALL_PREFIX=/opt/mysql \
  -DMYSQL_DATADIR=/opt/mysql/data \
  -DSYSCONFDIR=/opt/mysql/etc \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_MYISAM_STORAGE_ENGINE=1 \
  -DWITH_MEMORY_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_PARTITION_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DENABLED_LOCAL_INFILE=1 \
  -DEXTRA_CHARSETS=all \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_general_ci \
  -DMYSQL_TCP_PORT=3306 \
  -DMYSQL_UNIX_ADDR=/opt/mysql/tmp/mysql.sock \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DWITH_BOOST=boost_1_59_0  # 5.6 不需 Boost,5.7+ 需

編譯安裝 (視 CPU 核心數調整 -j)

make -j$(nproc)
make install

配置文件 (/opt/mysql/etc/my.cnf)

[mysqld]
basedir = /opt/mysql
datadir = /opt/mysql/data
port = 3306
socket = /opt/mysql/tmp/mysql.sock
pid-file = /opt/mysql/tmp/mysql.pid
user = mysql
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
skip-name-resolve
explicit_defaults_for_timestamp = ON

innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_file_per_table = ON
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1

log-bin = /opt/mysql/log/binlog/mysql-bin
slow_query_log = 1
slow_query_log_file = /opt/mysql/log/slow.log
long_query_time = 0.5

tmpdir = /opt/mysql/tmp
max_connections = 1000
open_files_limit = 65535

[client]
socket = /opt/mysql/tmp/mysql.sock
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

初始化數據庫 (5.6 專用腳本)

/opt/mysql/scripts/mysql_install_db \
  --user=mysql \
  --basedir=/opt/mysql \
  --datadir=/opt/mysql/data

啟動腳本與服務註冊

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

設置 root 密碼並驗證

/opt/mysql/bin/mysqladmin -u root password 'StrongPass123!'
/opt/mysql/bin/mysql -uroot -p'StrongPass123!' -e "SHOW DATABASES;"

環境變量 (可選)

echo 'export PATH=/opt/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

常見編譯錯誤與解決

錯誤解決
CMake Error: Curses library not foundyum install ncurses-devel
SSL library not foundyum install openssl-devel
Bison not foundyum install bison
make 過程內存不足增加 swap 或減少 -j 並發數
mysqld: Can't create test file檢查 datadir 權限、磁碟空間、SELinux

遷移建議

  • 生產環境優先用官方 RPM/Yum 仓库 (mysql-community-server) 或 Percona Server,編譯安裝維護成本高、無安全更新推送。
  • 編譯安裝適合「定製化需求、特殊優化、舊版本依賴」場景。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved