在 Windows 64 位環境下操作 MySQL,掌握服務控制、連線參數、提示符客製化與 SQL 規範是高效開發運維的基石。本文系統整理 net start/stop、mysql 客戶端完整參數表、prompt 動態提示符技巧、核心系統函數與團隊協作編碼規範。
一、服務生命週期管理
| 操作 | 命令 | 適用場景 |
| 啟動 | net start mysql | 服務名為 mysql(預設),MySQL 8.0 可能為 mysql80 |
| 停止 | net stop mysql | 優雅關閉,完成 checkpoint、刷盤 |
| 重啟 | net stop mysql && net start mysql | 參數修改生效、釋放鎖定資源 |
| 狀態查詢 | sc query mysql | 詳細狀態:RUNNING/STOPPED/PAUSED |
權限提醒: 需以「系統管理員身分執行」CMD/PowerShell,否則 Access denied。
二、mysql 客戶端連線參數完整表
| 參數 | 縮寫 | 說明 | 範例 |
| --user | -u | 登入用戶名 | -u root |
| --password | -p | 密碼(不帶值時互動輸入,帶值無空格:-pPass123) | -p / -pPass123 |
| --port | -P | TCP 連接埠(大寫 P) | -P 3306 |
| --host | -h | 主機名/IP,本機用 127.0.0.1 強制 TCP,localhost 走 Socket | -h 127.0.0.1 |
| --protocol | | 強制協議:TCP/SOCKET/PIPE/MEMORY | --protocol=TCP |
| --default-character-set | | 連線字符集 | --default-character-set=utf8mb4 |
| --prompt | | 啟動時指定提示符 | --prompt="\\u@\\h [\\d]>" |
| --execute | -e | 執行單條 SQL 後退出 | -e "SHOW DATABASES" |
| --vertical | -E | 垂直顯示結果(\G 效果) | -E |
| --batch | -B | 批次模式,Tab 分隔,適合腳本處理 | -B |
常用連線範例
# 本機標準連線(Socket,效能最佳)
mysql -u root -p
# 本機 TCP 連線(明確指定,便於防火牆/Proxy 測試)
mysql -u root -p -P 3306 -h 127.0.0.1
# 遠端連線
mysql -u app_user -p -h 192.168.1.100 -P 3306
# 執行單條指令(自動化腳本常用)
mysql -u root -p -e "SHOW GLOBAL STATUS LIKE 'Threads_connected'"
# 導出結果供程式處理
mysql -u root -p -B -e "SELECT * FROM info" > output.tsv
三、退出 mysql 客戶端的三種方式
mysql> exit;
mysql> quit;
mysql> \q -- 反斜線 + q,最快手勢
四、提示符客製化:從資訊噪音到上下文雷達
動態提示符佔位符
| 佔位符 | 含義 | 範例輸出 |
| \u | 當前用戶 | root |
| \h | 連線主機 | localhost / 192.168.1.100 |
| \d | 當前資料庫(無則空) | test / (空) |
| \D | 完整日期時間 | 2024-01-15 14:30:25 |
| \t | 當前時間 | 14:30:25 |
| \v | 伺服器版本 | 8.0.36 |
| \c | 當前命令計數器 | 1, 2, 3... |
| \s | 分號提示符 | ; |
兩種設定方式
# 1. 啟動參數指定(持久化寫入捷徑/腳本)
mysql -u root -p --prompt="\u@\h [\d] \t> "
# 2. 連線後動態修改(即時生效,僅限當前會話)
mysql> prompt \u@\h [\d] \t>
PROMPT set to '\u@\h [\d] \t>'
root@localhost [test] 14:35:10>
推薦團隊統一格式
# 格式:用戶@主機 [資料庫] 時間>
prompt \u@\h [\d] \t>
# 效果:
root@localhost [test] 14:35:10>
app_user@192.168.1.100 [order_db] 14:35:12>
五、核心系統資訊函數
| 函數 | 用途 | 範例輸出 |
| VERSION() | 伺服器版本 | 8.0.36 |
| NOW() / SYSDATE() | 當前日期時間 | 2024-01-15 14:35:10 |
| USER() / CURRENT_USER() | 登入用戶 / 權限判定用戶 | root@localhost / root@% |
| DATABASE() / SCHEMA() | 當前資料庫 | test |
| CONNECTION_ID() | 當前連線 ID | 2854760 |
| LAST_INSERT_ID() | 最後自增 ID | 1001 |
六、SQL 編碼規範(團隊協作基石)
- 關鍵字/函數名全大寫:
SELECT, FROM, WHERE, COUNT(), NOW()
- 資料庫/表/欄位名全小寫:
user_info, order_id, created_at
- 語句以分號結尾: 無分號不執行,多語句批次執行必備
- 識別符用反引號包裹:
\`table\`, \`column\` 避免保留字衝突
- 縮進 2 空格,關鍵字換行:
SELECT
u.\`name\`,
COUNT(o.\`id\`) AS order_count
FROM \`user\` u
LEFT JOIN \`order\` o ON u.\`id\` = o.\`user_id\`
WHERE u.\`status\` = 1
GROUP BY u.\`id\`
ORDER BY order_count DESC;
七、驗證當前資料庫上下文
mysql> USE test;
Database changed
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test |
+------------+
mysql> -- 或觀察提示符 [test] 確認
掌握 Windows 環境下的服務控制、連線參數、提示符雷達與編碼規範,讓每一次敲擊鍵盤都精準、可追蹤、可協作。