MySQL 安裝與環境設定
單元:安裝與環境設定
主題:在 macOS / Windows / Linux 安裝 MySQL
簡介
MySQL 是最廣為使用的開源關聯式資料庫之一,無論是網站後端、行動應用,還是資料分析平台,都離不開它的支撐。對開發者來說,能在本機環境快速、正確地安裝 MySQL,是學習 SQL 語法、測試資料庫設計、以及進行本地開發的第一步。
本篇文章將針對 macOS、Windows、Linux 三大作業系統,提供完整的安裝流程、常見問題與最佳實踐,讓你能在不同環境下都能順利啟動 MySQL,並以簡單的範例說明如何驗證安裝是否成功。
核心概念
1. 為什麼要選擇官方套件或套件管理工具?
| 作業系統 | 常用安裝方式 | 優點 |
|---|---|---|
| macOS | Homebrew、官方 DMG | 自動解決相依套件、支援版本切換 |
| Windows | MySQL Installer、ZIP 壓縮檔 | 圖形化安裝精簡、可選擇完整或最小安裝 |
| Linux | apt (Debian/Ubuntu)、yum (CentOS) | 套件管理器自動更新、與系統服務整合 |
建議:在開發環境中使用套件管理工具(Homebrew、apt、yum),可讓升級與移除變得更安全、可控。
2. 安裝前的環境檢查
- 確認系統版本:MySQL 官方只支援特定的 OS 版本,請先至 https://dev.mysql.com/downloads/ 查閱相容性表。
- 檢查防火牆與端口:預設 MySQL 監聽 3306 埠,若防火牆阻擋會導致無法遠端連線。
- 決定安裝類型:開發環境建議安裝 Community Edition;若需要商業支援,可考慮 Enterprise Edition。
3. 安裝流程概覽
以下以 macOS、Windows、Linux 為例,說明從下載、安裝、設定到驗證的完整步驟。
安裝實作
3.1 macOS 安裝 MySQL
3.1.1 使用 Homebrew 安裝
# 1. 更新 Homebrew
brew update
# 2. 安裝 MySQL(預設安裝最新的 8.x 版)
brew install mysql
# 3. 啟動 MySQL 服務(開機自動啟動可使用 brew services)
brew services start mysql
# 4. 檢查服務狀態
brew services list
Homebrew 會自動處理依賴的 OpenSSL、readline 等套件,省去手動編譯的麻煩。
3.1.2 設定 root 密碼
# 進入 MySQL 安全設定腳本
mysql_secure_installation
# 依照提示設定 root 密碼、移除匿名使用者、禁止遠端 root 登入等
3.1.3 測試連線
# 使用 mysql 客戶端連線
mysql -u root -p
# 成功後會看到 MySQL 提示符
mysql>
3.2 Windows 安裝 MySQL
3.2.1 下載 MySQL Installer
- 前往 https://dev.mysql.com/downloads/installer/
- 下載 MySQL Installer (Web Community)(約 100 MB)
- 執行
mysql-installer-community-*.exe
3.2.2 安裝向導步驟
| 步驟 | 操作說明 |
|---|---|
| 選擇產品與功能 | 勾選 Server, MySQL Shell, MySQL Workbench(視需求) |
| 設定類型 | 建議選擇 Developer Default,會安裝完整的開發套件 |
| 設定 root 密碼 | 輸入強密碼,並記錄在安全位置 |
| 選擇執行方式 | 預設 Windows Service,設定為 自動啟動 |
| 完成安裝 | 安裝完成後會自動啟動服務,並顯示「MySQL Server is ready」 |
3.2.3 使用命令列驗證
rem 開啟命令提示字元 (cmd) 或 PowerShell
mysql -u root -p
輸入密碼後,如果出現
mysql>提示符,即表示安裝成功。
3.3 Linux (Ubuntu/Debian) 安裝 MySQL
3.3.1 使用 apt 安裝
# 1. 更新套件清單
sudo apt update
# 2. 安裝 MySQL Server(預設 8.0)
sudo apt install mysql-server
# 3. 安裝過程會自動產生臨時 root 密碼,建議立即執行安全設定
sudo mysql_secure_installation
3.3.2 啟動與檢查服務
# 啟動 MySQL
sudo systemctl start mysql
# 設定開機自動啟動
sudo systemctl enable mysql
# 查看服務狀態
sudo systemctl status mysql
3.3.3 連線測試
# 使用本機 root 帳號連線
sudo mysql
# 若已設定密碼,可改用
mysql -u root -p
3.4 常用程式碼範例
以下提供 5 個實用範例,涵蓋資料庫建立、使用者權限、資料匯入、備份與還原。
範例 1:建立測試資料庫與資料表
-- 建立資料庫
CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 切換至該資料庫
USE test_db;
-- 建立簡易的 user 資料表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
範例 2:新增一個僅能從本機連線的使用者
-- 建立使用者 test_user,密碼為 StrongP@ssw0rd
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd';
-- 授予 test_user 在 test_db 上的全部權限
GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost';
-- 重新整理權限
FLUSH PRIVILEGES;
範例 3:匯入 CSV 檔案至資料表
-- 假設 CSV 檔位於 /tmp/users.csv,欄位順序為 username,email
LOAD DATA INFILE '/tmp/users.csv'
INTO TABLE users
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(username, email);
注意:Linux 系統需確保
secure_file_priv參數允許讀取該路徑,或將檔案放在/var/lib/mysql之下。
範例 4:備份資料庫(mysqldump)
# 使用 root 或有 RELOAD 權限的帳號備份 test_db
mysqldump -u root -p test_db > /path/to/backup/test_db_$(date +%F).sql
範例 5:還原備份檔案
# 先建立空的資料庫(若不存在)
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS test_db;"
# 再將備份匯入
mysql -u root -p test_db < /path/to/backup/test_db_2024-10-01.sql
常見陷阱與最佳實踐
| 陷阱 | 可能的症狀 | 解決方案或最佳實踐 |
|---|---|---|
| 忘記設定 root 密碼 | ERROR 1045 (28000): Access denied for user 'root'@'localhost' |
安裝後立即執行 mysql_secure_installation,或使用 sudo mysql 以免密碼模式登入。 |
| 防火牆阻擋 3306 埠 | 無法從遠端或本機其他程式連線 | 在 macOS 用 pfctl、Windows 用 Windows Defender Firewall、Linux 用 ufw 開啟 3306。 |
| 資料目錄權限錯誤 | ERROR 2002 (HY000): Can't connect to local MySQL server through socket |
確認 mysqld 執行帳號(通常是 mysql)對 /var/lib/mysql(Linux)或 datadir 目錄具寫入權限。 |
| 版本不相容 | 安裝失敗或執行時出現 ERROR 1064 |
請先確認 OS 與 MySQL 版本相容,必要時使用舊版套件或 MariaDB 替代。 |
| 自動啟動失敗 | 重開機後 MySQL 沒有跑起來 | 在 macOS 使用 brew services start mysql,Linux 使用 systemctl enable mysql,Windows 確認服務設定為「自動」且帳號有啟動權限。 |
最佳實踐
- 使用強密碼,並定期更換。
- 限制遠端 root 登入,僅允許本機或特定 IP。
- 定期備份(每日增量、每週全備),並測試還原流程。
- 監控資源使用,可透過
mysqladmin status或performance_schema。 - 保持套件更新,特別是安全性更新。
實際應用場景
| 場景 | 為何需要本機 MySQL | 典型操作 |
|---|---|---|
| Web 前端開發 | 與後端 API 測試時需要即時存取資料 | 建立測試 DB、使用 Docker 內的 MySQL 進行 CI |
| 資料分析與 ETL | 需要匯入大量 CSV/JSON 並進行 SQL 分析 | 使用 LOAD DATA INFILE、SELECT INTO OUTFILE |
| 學習與認證 | 練習 SQL 語法、參與 MySQL 官方認證(OCA/OCP) | 實作資料庫正規化、索引優化、交易管理 |
| 本機服務模擬 | 測試多服務架構(如微服務)時的資料庫依賴 | 使用 mysqld 多埠執行多個實例,或搭配 Docker Compose |
| 離線開發 | 無法連上公司內部資料庫時仍需開發 | 在本機安裝相同版本的 MySQL,保持環境一致性 |
總結
本文從 macOS、Windows、Linux 三大平台,詳細說明了 MySQL 的安裝步驟、設定要點與驗證方法。透過 Homebrew、MySQL Installer、apt 等套件管理工具,我們不僅能快速部署資料庫,還能利用 mysql_secure_installation 加固安全性。文章同時提供了 5 個實用的 SQL / CLI 範例,涵蓋資料庫建立、使用者管理、資料匯入、備份與還原,讓讀者能即刻在本機環境驗證安裝成果。
最後,我們列出常見的陷阱與最佳實踐,提醒大家在開發與測試階段要注意密碼、權限、端口與備份等關鍵點。掌握這些基礎後,你就能在任何作業系統上穩定運行 MySQL,為後續的資料庫設計、效能調校與實務開發奠定堅實基礎。
祝你安裝順利,開發愉快! 🎉