mysql(終端監視器)是官方互動式命令列工具,支援互動模式與批次模式,內建 GNU Readline 提供輸入行編輯、歷史指令回溯。
mysql [options] [db_name]
| 短參數 | 長參數 | 說明 |
|---|---|---|
| -h host | --host=host | 伺服器主機,本機可省略 |
| -u user | --user=user | MySQL 帳號,Unix 預設為登入用戶 |
| -p | --password | 提示輸入密碼(最安全) |
| -p pass | --password=pass | 命令列直接給密碼(歷史紀錄會洩露,不建議) |
| -P port | --port=port | TCP 埠號,預設 3306 |
| -S socket | --socket=socket | Unix socket 路徑 |
| -D db | --database=db | 預設資料庫(等同 USE db) |
| -e "SQL" | --execute="SQL" | 執行單條 SQL 後退出,適合腳本 |
# 本機 root 互動
mysql -u root -p
# 遠端連線指定資料庫
mysql -h db.example.com -u app_user -p mydb
# 批次執行 SQL 檔
mysql -u root -p mydb < backup.sql
# 一行指令查詢版本
mysql -u root -p -e "SELECT VERSION();"
[client]
user=root
password=your_password
host=localhost
port=3306
[mysql]
prompt="\\u@\\h [\\d]> "
auto-rehash
安全提示:檔案權限設為 600(chmod 600 ~/.my.cnf),僅擁有者可讀寫。若不想寫密碼,僅寫 password 不給值,啟動時會提示輸入。
| 按鍵 | 功能 |
|---|---|
| ↑ / Ctrl+P | 上一條歷史指令 |
| ↓ / Ctrl+N | 下一條歷史指令 |
| ← / Ctrl+B | 游標左移 |
| → / Ctrl+F | 游標右移 |
| Esc+B / Esc+F | 按單字後退/前進 |
| Ctrl+A | 移至行首 |
| Ctrl+E | 移至行尾 |
| Ctrl+D / Delete | 刪除游標字元 |
| Esc+D | 刪除游標至字尾 |
| Esc+Backspace | 刪除游標至字首 |
| Ctrl+K | 刪除游標至行尾 |
| Ctrl+_ | 撤銷 |
Windows 版 mysql.exe 不支援 Readline;可安裝 Cygwin 的 mysqlc 或使用 mysqlsh(Shell)獲得更豐富體驗。
# 執行 SQL 檔
mysql -u root -p < batch.sql
# 管線配合分頁器
mysql -u root -p < batch.sql | more
# 輸出導向檔案
mysql -u root -p < batch.sql > output.txt
# 批次檔內容範例
USE mydb;
SELECT * FROM users WHERE created_at > '2024-01-01';
-- 註解行以 -- 或 # 開頭
quit
exit
Ctrl+D (Unix)
精通 mysql 客戶端的連線參數、選項檔、輸入編輯與批次模式,能大幅提升日常管理、開發除錯與自動化腳本的效率。建議將常用參數寫入 ~/.my.cnf,並養成批次腳本管理 SQL 的習慣。