本文整理自社區高頻提問,涵蓋 LAMP 架構搭建、RPM 包管理、二進制包部署、源碼編譯安裝四大主流場景,提供可直接執行的標準化操作步驟,適合運維人員快速查閱。
推薦使用成熟的一鍵安裝包或腳本,避免手動編譯依賴地獄:
yum install httpd mariadb-server php php-mysql(CentOS/RHEL)或 apt install apache2 mysql-server php php-mysql(Debian/Ubuntu)。docker-compose up -d 配合 bitnami/lamp-stack 鏡像,分鐘級交付。# 1. 下載對應架構 RPM 包
wget https://downloads.mysql.com/archives/get/file/mysql-5.0.15-0.i386.rpm
# 2. 安裝核心服務包
rpm -ivh mysql-5.0.15-0.i386.rpm
# 3. 安裝開發庫(含頭文件、庫文件,編譯擴展/驅動必備)
rpm -ivh mysql-devel-5.0.15-0.i386.rpm
# 4. 安裝客戶端工具
rpm -ivh mysql-client-5.0.15-0.i386.rpm
# 5. 初始化並啟動
systemctl start mysqld
mysql_secure_installation
注意: RPM 默認安裝路徑通常為/usr/lib/mysql、/var/lib/mysql、/etc/my.cnf,配置文件修改後需重啟服務生效。
# 1. 創建專用用戶組
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 2. 解壓至標準目錄
cd /usr/local
tar zxvf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql
# 3. 初始化數據目錄
cd mysql
scripts/mysql_install_db --user=mysql
# 4. 設置權限
chown -R root .
chown -R mysql data
chgrp -R mysql .
# 5. 啟動服務(後台運行)
bin/mysqld_safe --user=mysql &
# 6. 可選:配置 my.cnf 覆蓋默認參數
cp support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf 調整 innodb_buffer_pool_size 等關鍵參數
# 1. 安裝編譯依賴
yum install -y gcc gcc-c++ make ncurses-devel bison cmake
# 2. 解壓源碼
tar zxvf mysql-4.1.13.tar.gz
cd mysql-4.1.13
# 3. 配置編譯參數(針對性能優化)
./configure \
--prefix=/usr/local/mysql \
--enable-assembler \
--with-charset=utf8 \
--with-extra-charsets=all \
--with-mysqld-ldflags=-all-static \
--enable-thread-safe-client \
--with-big-tables \
--with-readline \
--with-ssl \
--with-embedded-server \
--localstatedir=/var/lib/mysql
# 4. 編譯安裝(視 CPU 核心數調整 -j 參數)
make -j$(nproc)
make install
# 5. 後續初始化步驟同二進制包部署(Q3 步驟 1-6)
| 參數 | 作用 | 建議場景 |
|---|---|---|
--with-mysqld-ldflags=-all-static | 靜態鏈接 mysqld,減少動態庫依賴,提升 5-10% 性能 | 生產環境、嵌入式部署 |
--with-extra-charsets=none | 僅編譯 latin1 字符集,減小體積、加快啟動 | 純英文環境、資源受限設備 |
--enable-assembler | 啟用汇編優化(x86 SSE 等) | Intel/AMD CPU 服務器 |
CFLAGS="-O3 -march=native" | 編譯器深度優化 | 現代 CPU 架構 |
mysql:mysql,否則啟動報錯 Permission denied。netstat -tlnp | grep 3306。setsebool -P mysql_connect_any=1 或調整策略。libaio 缺失:InnoDB 需異步 I/O 支持,yum install libaio。掌握上述四種部署模式,可覆蓋從開發測試到生產高可用的全生命週期場景。建議生產環境優先使用官方 RPM/YUM/APT 倉庫或二進制包,保證安全更新獲取便利性;源碼編譯僅用於極致性能調優或特殊架構適配。