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

MySQL 安裝完全指南:Linux RPM/APT、Windows 安裝包、驗證測試、Root 密碼設置與開機自啟

     編輯:MySQL 入門

MySQL 安裝完全指南:Linux RPM/APT、Windows 安裝包、驗證測試、Root 密碼設置與開機自啟

MySQL 安裝是資料庫生命週期的起點。選對安裝方式(包管理器 vs 官方包 vs 容器)、驗證安裝完整性、初始化安全配置、設定開機自啟,能避免 90% 後續運維坑。本文系統講解 Linux(RPM/APT/YUM/DNF)、Windows、Docker 四大路徑,並給出驗證清單與安全初始化 SOP。

一、Linux 安裝:包管理器優先(推薦)

RHEL/CentOS/Rocky/AlmaLinux (YUM/DNF)

# 1. 配置官方 YUM 源(獲取最新版)
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

# 2. 安裝 Server + Client + Shell
dnf install -y mysql-community-server mysql-community-client mysql-shell

# 3. 啟動並設定開機自啟
systemctl enable --now mysqld

# 4. 獲取臨時 root 密碼(8.0+ 預設生成隨機密碼存於日誌)
grep 'temporary password' /var/log/mysqld.log

Debian/Ubuntu (APT)

# 1. 配置官方 APT 源
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
dpkg -i mysql-apt-config_0.8.24-1_all.deb  # 選擇 mysql-8.0
apt update

# 2. 安裝(安裝過程會提示設置 root 密碼)
apt install -y mysql-server mysql-client mysql-shell

# 3. 服務自動啟動並設定開機自啟
systemctl status mysql

通用 RPM 手動安裝(離線/指定版本)

# 下載 RPM 包組
rpm -ivh mysql-community-common-*.rpm
rpm -ivh mysql-community-client-*.rpm
rpm -ivh mysql-community-server-*.rpm
rpm -ivh mysql-community-libs-*.rpm
rpm -ivh mysql-community-icu-data-files-*.rpm

# 初始化數據目錄(8.0+ 不再自動初始化,需手動)
mysqld --initialize --user=mysql
# 臨時密碼在 stderr 輸出,記錄下來

systemctl enable --now mysqld

二、Windows 安裝:MSI 安裝包(圖形化)

  1. 下載:MySQL Installer for Windows(Web/完整包)。
  2. 雙擊運行,選擇 Developer Default 或 Server Only。
  3. 配置向導:
    • Type: Standalone MySQL Server
    • Authentication: Use Strong Password Encryption (SHA256)(8.0 預設)
    • Root 密碼:設定強密碼、可添加應用帳號
    • Windows Service: MySQL80、Auto Start、Run as Standard System Account
    • Port: 3306、Open Firewall port
  4. 完成安裝,MySQL Notifier 顯示服務運行中。

命令列驗證(PowerShell/CMD)

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
.\mysql.exe -u root -p
# 輸入安裝時設定的密碼

三、Docker 容器化部署(現代雲原生首選)

docker run -d \
  --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=StrongRandomPassword123! \
  -e MYSQL_DATABASE=myapp \
  -e MYSQL_USER=app_user \
  -e MYSQL_PASSWORD=AppUserPass456@ \
  -p 3306:3306 \
  -v mysql_data:/var/lib/mysql \
  -v ./my.cnf:/etc/mysql/conf.d/my.cnf \
  mysql:8.0 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_0900_ai_ci \
  --innodb-buffer-pool-size=1G
  • 資料持久化:-v mysql_data:/var/lib/mysql(Named Volume)。
  • 配置覆蓋:-v ./my.cnf:/etc/mysql/conf.d/my.cnf。
  • 生產環境建議用 Docker Compose / Kubernetes StatefulSet 管理。

四、安裝後驗證測試(四步驟)

  1. 版本檢查:mysqladmin --version / mysql -V
  2. 服務狀態:systemctl status mysqld / sc query MySQL80
  3. 連線測試:mysql -u root -p -e "SELECT VERSION(), CURRENT_USER();"
  4. 基礎功能:
    mysql -u root -p -e "
    CREATE DATABASE test_db;
    USE test_db;
    CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20));
    INSERT INTO t (name) VALUES ('test');
    SELECT * FROM t;
    DROP DATABASE test_db;
    "

五、Root 密碼安全初始化(必做)

# 1. 使用臨時密碼登入(RPM/手動安裝)
mysql -u root -p'TempPass!'

# 2. 修改密碼(8.0+ 語法)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword123!';

# 3. 移除匿名用戶、測試庫、遠程 root 登入
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1');
FLUSH PRIVILEGES;
  • 或執行官方安全腳本:mysql_secure_installation(互動式完成上述所有)。

六、Linux 開機自啟配置

  • systemd(現代標準): systemctl enable mysqld / systemctl enable mysql(已在安裝步驟包含)。
  • 舊式 SysVinit: chkconfig mysqld on 或在 /etc/rc.local 添加 /etc/init.d/mysqld start。

七、常見安裝問題排查

問題 原因 解決
Can't connect to local MySQL server through socket服務未啟動 / socket 路徑不匹配systemctl start mysqld、核對 my.cnf socket 路徑
Access denied for user 'root'@'localhost'密碼錯誤 / 權限表損壞用 --skip-grant-tables 重置密碼、或重新初始化數據目錄
Plugin caching_sha2_password could not be loaded舊客戶端不支援 8.0 預設插件客戶端升級、或用戶改用 mysql_native_password
Windows 安裝卡在 "Starting Service"端口被佔用 / 防火牆 / 權限不足管理員運行、檢查 3306 端口、關閉防毒軟體嘗試

八、生產環境安裝 SOP 清單

  1. OS 精簡安裝、關閉 SELinux/AppArmor 或配置策略、關閉 Swap 或設 vm.swappiness=1。
  2. 磁碟:RAID10 / NVMe、noatime 掛載、ext4/xfs、預留 20%+ 餘量。
  3. 安裝官方最新 GA 版(避開 .0 版本),驗證簽名/校驗和。
  4. 執行 mysql_secure_installation、建立應用專用帳號、最小權限授權。
  5. 導入調優過的 my.cnf、啟用慢查詢、錯誤日誌、Binlog (ROW 格式)。
  6. 納入監控(Prometheus + mysqld_exporter)、備份排程(xtrabackup/邏輯備份)、告警規則。
  7. 文檔化:版本、配置、帳號、端口、資料目錄、備份路徑、聯繫人。

MySQL 安裝不是「下一步、下一步、完成」,而是「規劃、部署、驗證、加固、監控、文檔」的完整工程鏈。將上述 SOP 內化為團隊標準、自動化為 Ansible/Terraform/Helm Chart,讓每一次部署都可重現、可審計、可信賴。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved