MySQL 安裝與環境設定
使用 MySQL Server、Client、Workbench
簡介
MySQL 是最普及的開源關聯式資料庫之一,無論是 網站後端、行動應用,或是 資料分析,都常會與 MySQL 打交道。
在正式開發之前,先把 MySQL Server、MySQL Client 以及 MySQL Workbench 正確安裝與設定好,才能確保後續的資料庫操作順暢、除錯快速。
本單元將帶你:
- 依平台(Windows、Linux、macOS)安裝 MySQL Server 與 Client。
- 透過指令列連線、驗證安裝是否成功。
- 使用圖形化工具 MySQL Workbench 建立連線、管理 schema。
即使你是剛接觸資料庫的初學者,也能在閱讀完本篇後,立即在自己的開發機上跑起第一個 SELECT 查詢。
核心概念
1. MySQL Server、Client 與 Workbench 的角色分工
| 元件 | 功能 | 常見使用情境 |
|---|---|---|
| MySQL Server | 資料庫核心,負責儲存、查詢、事務處理等 | 後端服務、資料倉儲 |
MySQL Client (mysql 指令) |
文字介面的連線工具,直接向 Server 發送 SQL | 快速測試、腳本自動化 |
| MySQL Workbench | 圖形化管理工具,提供 ER 圖、資料庫設計、SQL 編輯器 | 視覺化開發、除錯、備份還原 |
重點:Server 必須先啟動,Client 與 Workbench 才能成功連線。
2. 安裝 MySQL Server
2.1 Windows
前往官方下載頁 https://dev.mysql.com/downloads/mysql/,選擇 Windows (x86, 64-bit), MSI Installer。
執行 installer,步驟如下:
- Setup Type:建議選
Developer Default(會同時安裝 Server、Client、Workbench)。 - Configuration:選
Standalone MySQL Server / Classic MySQL. - Port:預設
3306(若已有服務佔用,可自行變更)。 - Root Password:設定強密碼,務必記錄下來。
- Setup Type:建議選
完成後,系統會自動將
mysqld加入服務,並啟動。
2.2 Linux(以 Ubuntu 為例)
# 更新套件清單
sudo apt update
# 安裝 MySQL Server(會同時安裝 client)
sudo apt install -y mysql-server
# 安全性設定(建議執行)
sudo mysql_secure_installation
註解:
mysql_secure_installation會引導你設定 root 密碼、移除匿名帳號、禁止遠端 root 登入等安全選項。
2.3 macOS(使用 Homebrew)
# 安裝 Homebrew(若尚未安裝)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安裝 MySQL
brew install mysql
# 啟動服務
brew services start mysql
# 設定 root 密碼
mysql_secure_installation
3. 使用 MySQL Client 連線
3.1 基本連線指令
# 連線到本機的 MySQL Server
mysql -u root -p
輸入
-p後會提示輸入密碼,若使用-h指定遠端主機 IP,則為mysql -h 192.168.1.100 -u user -p。
3.2 常用指令範例
-- 顯示目前連線的資料庫
SELECT DATABASE();
-- 列出所有資料庫
SHOW DATABASES;
-- 建立測試資料庫
CREATE DATABASE testdb;
-- 切換到 testdb
USE testdb;
-- 建立簡單資料表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 插入測試資料
INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');
-- 查詢資料
SELECT * FROM users;
小技巧:在
mysql交互式介面下,使用\c可以取消目前的查詢,\q退出。
4. MySQL Workbench 的安裝與設定
4.1 安裝
| 平台 | 下載連結 |
|---|---|
| Windows | https://dev.mysql.com/downloads/workbench/ |
| macOS | 同上,選擇 dmg 檔 |
| Linux | 使用套件管理員,例如 sudo apt install mysql-workbench |
4.2 建立連線
開啟 Workbench,點擊 + 按鈕新增 MySQL Connection。
填入以下資訊:
- Connection Name:自訂名稱(如
Local MySQL)。 - Connection Method:
Standard (TCP/IP)。 - Hostname:
127.0.0.1(本機)或遠端 IP。 - Port:
3306(若改過則填新埠號)。 - Username:
root(或其他使用者)。 - Password:點擊 Store in Vault 輸入密碼。
- Connection Name:自訂名稱(如
點擊 Test Connection,若顯示
Successfully made the MySQL connection即完成設定。
4.3 常見操作示範(SQL 編輯器)
-- 1. 建立 schema(相當於資料庫)
CREATE SCHEMA shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 切換 schema
USE shop;
-- 3. 建立商品資料表
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10,2) NOT NULL,
stock INT DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 4. 批次匯入 CSV(Workbench 內建匯入向導)
-- 5. 產生 ER 圖(Menu > Database > Reverse Engineer)
提示:Workbench 的 Model 功能可將 ER 圖直接產生
CREATE TABLE語句,對於資料庫設計非常有幫助。
常見陷阱與最佳實踐
| 陷阱 | 描述 | 解決方案 |
|---|---|---|
| 忘記啟動服務 | 安裝完畢後未手動啟動 mysqld,導致 client 連線失敗。 |
在 Windows 服務管理員確認 MySQL80(或相應版本)已啟動;Linux/macOS 用 systemctl status mysql 或 brew services list。 |
| 預設 root 無密碼 | 某些舊版安裝會留下空密碼,安全風險極高。 | 立即設置 強密碼,並在 my.cnf 中加入 skip-networking 或 bind-address=127.0.0.1 限制遠端登入。 |
| 字符集不一致 | 資料表使用 latin1,卻在應用程式以 UTF‑8 讀寫,會出現亂碼。 |
建議在安裝時選擇 utf8mb4 為預設字符集,或在 my.cnf 加入 character-set-server=utf8mb4。 |
| 端口衝突 | 本機已有其他服務佔用 3306,導致 MySQL 無法啟動。 | 在 my.cnf(或 Windows Installer 中)修改 port 為未被使用的埠號,並在 client 端相應調整。 |
| 權限過寬 | 使用 GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' 給予全域權限。 |
依需求 最小權限原則,只授予特定資料庫與操作,例如 GRANT SELECT, INSERT, UPDATE ON shop.* TO 'app'@'%'. |
最佳實踐:
- 使用非 root 帳號:在
mysql中建立專屬應用使用者,僅授予必要權限。 - 定期備份:利用
mysqldump或 Workbench 的 Export 功能,排程每日全備份。 - 監控服務狀態:在 Linux 可使用
systemctl enable mysql讓服務開機自動啟動,並透過journalctl -u mysql觀察日誌。 - 設定慢查詢日誌:
slow_query_log=ON、long_query_time=1,協助找出效能瓶頸。
實際應用場景
| 場景 | 為何選擇 MySQL | 相關設定要點 |
|---|---|---|
| 部落格網站 | 輕量、支援大量讀取 | 使用 InnoDB,啟用 query cache(MySQL 5.7)或改用外部快取(Redis)。 |
| 電商平台 | 需要事務 (transaction) 保證 | 開啟 innodb_flush_log_at_trx_commit=1,確保每筆訂單寫入磁碟。 |
| 資料分析原型 | 與 Python、R 整合方便 | 安裝 mysqlclient 套件,使用 SELECT ... INTO OUTFILE 匯出 CSV。 |
| 微服務架構 | 每個服務獨立資料庫,易於擴展 | 為每個服務建立獨立 schema,使用 Docker 部署 mysql:8.0 容器,設定 --default-authentication-plugin=caching_sha2_password。 |
總結
- MySQL Server 是資料庫的核心,必須先確保服務正常啟動。
- MySQL Client 提供快速的指令列測試環境,適合腳本化與除錯。
- MySQL Workbench 則是圖形化的好幫手,從連線、資料庫設計到備份,都能一站式完成。
透過本篇的安裝步驟與範例,你現在已經能在本機或遠端環境建立完整的 MySQL 開發環境,並掌握 安全性、效能 兩大關鍵。未來只要再加上 ORM(如 Sequelize、Doctrine)或 容器化(Docker),就能更快速地把資料庫整合進你的應用程式。祝開發順利,資料庫永遠平穩運作!