編譯安裝可定製特性、優化編譯參數,但依賴解決耗時;官方 Yum 源提供預編譯 RPM,升級回滾極其便捷。本文雙軌並行:詳述 CMake 編譯全流程(依賴、參數、庫導出),並給出生產環境推薦的 Yum 源一鍵部署方案。
yum groupinstall "Development Tools" -y yum -y install make gcc-c++ cmake bison-devel ncurses-devel
wget https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz tar xvf mysql-5.6.14.tar.gz cd mysql-5.6.14
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci
make -j$(nproc) && make install
# 庫文件 echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql-x86_64.conf ldconfig -v | grep mysql # 頭文件 ln -sv /usr/local/mysql/include /usr/include/mysql # 手冊頁 echo "MANPATH /usr/local/mysql/man" >> /etc/man.config # 二進制路徑 echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile source /etc/profile
groupadd mysql; useradd -g mysql -s /sbin/nologin -M mysql mkdir -p /usr/local/mysql/data chown -R mysql:mysql /usr/local/mysql cd /usr/local/mysql/scripts ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld; chkconfig mysqld on service mysqld start
# RHEL/CentOS 7 / Oracle Linux 7 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 或 5.7 版本 rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # RHEL/CentOS 6 rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm # Fedora 20/19/18 rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-fc20-11.noarch.rpm
mysql57-community / mysql80-community:GA 版本mysql-tools-community:MySQL Router、Shell、Workbenchmysql-connectors-community:JDBC/ODBC/Python/C++ 連接器yum -y install mysql-community-server systemctl enable mysqld && systemctl start mysqld # 臨時密碼在 /var/log/mysqld.log,首次登錄必改 grep 'temporary password' /var/log/mysqld.log mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPwd@123';
yum --showduplicates list mysql-community-server | expand yum install mysql-community-server-5.7.36-1.el7 # 指定版本 yum downgrade mysql-community-server-5.7.35-1.el7 # 回滾
| 維度 | 編譯安裝 | Yum/RPM 安裝 |
|---|---|---|
| 定製化 | ✅ 可裁剪引擎、啟用 Debug、調優編譯旗標 | ❌ 預編譯通用配置 |
| 部署速度 | ⏱ 20-40 分鐘 | ⚡ 2-5 分鐘 |
| 升級維護 | 🔧 手工重編、替換二進制 | 📦 yum update 一鍵滾動 |
| 依賴管理 | 🧩 手工解決 | ✅ 自動解決 |
| 適用場景 | 內核研發、極致性能調優、舊版本長期維護 | 生產環境標準化交付、CI/CD 流水線 |
結論:除非有特殊定製需求,**生產環境首選官方 Yum 源**,配合 Ansible/SaltStack 實現不可變基礎設施部署。
