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

MySQL 安裝完整指南:RPM、二進制套件、原始碼編譯三種方式詳解

     編輯:MySQL 資料庫相關知識

前言

MySQL 安裝方式多樣,各有優劣。本文涵蓋 RPM 套件 (紅帽系最快)、二進制 tarball (通用、可自訂路徑)、原始碼編譯 (極致客製化) 三大主流方式,並說明初始化、服務註冊、安全性設定等後續必要步驟。

方式一:RPM 套件安裝 (推薦 RHEL/CentOS/Fedora)

# 下載 RPM 套件至 /tmp
cd /tmp
su - root
# 一次安裝所有 MySQL 相關套件 (server、client、libs、devel)
rpm -Uvh MySQL-*.rpm

✅ 優點:依賴自動解決、檔案配置標準化、易於升級/移除
❌ 缺點:安裝路徑固定、版本受限於發行版倉庫

方式二:二進制 tarball 安裝 (通用 Linux、自訂路徑)

步驟 1:解壓縮至 /usr/local

cd /usr/local
tar -zxvf /tmp/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
# 建立版本無關的符號連結,方便日後升級切換
ln -s mysql-8.0.36-linux-glibc2.28-x86_64 mysql

步驟 2:建立專用系統用戶 (安全最佳實務)

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 修正目錄擁有權
chown -R mysql:mysql /usr/local/mysql-8.0.36-linux-glibc2.28-x86_64
chown -R mysql:mysql /usr/local/mysql

步驟 3:初始化資料目錄 (MySQL 5.7.6+ / 8.0+)

cd /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# --initialize-insecure:產生無密碼 root (需事後設定)
# 生產環境建議用 --initialize 產生隨機密碼 (記錄在 error log)

步驟 4:設定系統服務 (systemd)

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
# 或直接使用官方提供的 systemd unit file
cp support-files/mysql.service /etc/systemd/system/mysqld.service
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld

方式三:原始碼編譯安裝 (進階需求)

# 安裝建構依賴
yum install -y cmake gcc gcc-c++ ncurses-devel bison openssl-devel
# 下載原始碼
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36.tar.gz
tar -zxvf mysql-8.0.36.tar.gz
cd mysql-8.0.36
# 配置編譯選項
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
        -DDEFAULT_CHARSET=utf8mb4 \
        -DDEFAULT_COLLATION=utf8mb4_general_ci \
        -DWITH_INNODB=ON \
        -DWITH_SSL=system \
        -DWITH_ZLIB=system
make -j$(nproc)
make install

後續初始化、服務設定同方式二。

通用後續設定

1. 設定 root 密碼

/usr/local/mysql/bin/mysqladmin -u root password 'StrongP@ssw0rd!'
# 或登入後執行
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd!';

2. 執行安全強化腳本

/usr/local/mysql/bin/mysql_secure_installation
# 移除匿名用戶、禁止 root 遠端登入、移除 test 資料庫、重新載入權限表

3. 環境變數 (方便直接呼叫 mysql、mysqldump 等)

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

4. 驗證安裝

mysql -u root -p -e "SHOW DATABASES;"
# 應顯示 mysql、performance_schema、information_schema、sys

常見問題排查

現象可能原因解決方向
mysqld 無法啟動datadir 權限錯誤、port 3306 衝突、selinux 阻擋chown -R mysql:mysql data/;netstat -tlnp;setenforce 0 或設定 selinux policy
連線被拒skip-networking、bind-address=127.0.0.1、防火牆修改 my.cnf bind-address=0.0.0.0;firewall-cmd --add-port=3306/tcp
中文亂碼字符集不一致my.cnf 設定 character-set-server=utf8mb4;重建資料庫/表

總結建議

  • 生產環境紅帽系:**首選 RPM / 官方 YUM/APT 倉庫** (穩定、安全更新便利)
  • 需多版本共存、自訂路徑:**二進制 tarball + 符號連結**
  • 特殊硬體優化、嵌入式場景:**原始碼編譯**
  • 無論何種方式,**務必執行 mysql_secure_installation** 並設定強密碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved