MySQL 客戶端 mysql 擁有豐富的啟動選項,善用這些參數能大幅提升日常操作、腳本自動化、遠端管理的效率與安全性。
10 大實用啟動參數對照表
| 參數 | 功能 | 適用場景 | 範例 |
--compress / -C |
壓縮客戶端-伺服器通訊封包 |
跨機房、低頻寬、高延遲連線 |
mysql -h db.example.com --compress |
--debug[=options] |
輸出除錯追蹤至檔案 |
分析客戶端行為、回報 Bug |
mysql --debug=d:t:O,/tmp/mysql.trace |
--force / -f |
遇錯誤繼續執行不中止 |
批次匯入 SQL、自動化部署腳本 |
mysql --force < dump.sql |
--pager[=command] |
查詢結果導向分頁器 |
大結果集互動式翻頁 |
mysql --pager="less -S" |
--xml / -X |
查詢結果輸出 XML 格式 |
程式解析、API 整合、異構同步 |
mysql --xml -e "SELECT * FROM t" |
--one-database / -o |
忽略非指定資料庫的陳述式 |
從全庫備份還原單庫、防 SQL 注入誤執行 |
mysql --one-database db_name < all.sql |
--tee=file / -T |
將所有輸出同時寫入檔案 |
操作審計、離線分析、教學紀錄 |
mysql --tee=/var/log/mysql_session.log |
--wait / -w |
連線失敗自動重試 |
等待主庫啟動、網路抖動、容器啟動順序 |
mysql --wait -h master -u root -p |
--safe-updates / -U |
拒絕無 WHERE/LIMIT 的 UPDATE/DELETE |
防止手滑全表刪改、新手保護模式 |
mysql --safe-updates |
--prompt=format |
自訂命令提示符 |
顯示當前資料庫、用戶、主機、時間 |
mysql --prompt="\\u@\\h [\\d] > " |
提示符格式代碼速查
| 代碼 | 含義 |
\u | 用戶名 |
\h | 主機名 |
\d | 當前資料庫 |
\D | 完整日期時間 |
\p | 當前埠號 |
\s | 伺服器版本 |
\c | 當前命令計數 |
組合實戰範例
生產環境安全操作模式
mysql --safe-updates --tee=/var/log/mysql_prod_$(date +%F).log --prompt="PROD \\u@\\h [\\d] > "
遠端低頻寬大資料匯出
mysql --compress --xml -h remote-db -u user -p -e "SELECT * FROM big_table" > export.xml
自動化部署腳本(容器啟動等待 DB)
#!/bin/bash
mysql --wait --host=db --user=root --password=$ROOT_PASSWORD --execute="SELECT 1"
查看完整參數列表
mysql --help | less