首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 客戶端啟動參數十大必知選項實戰指南

     編輯:MySQL 資料庫相關知識

前言

MySQL 客戶端 mysql 擁有豐富的啟動選項,善用可大幅提升管理效率、自動化腳本穩定性與安全性。本文精選十大實用選項深度解析。

十大必知選項

選項短參功能實戰場景
--execute, -e-e直接執行 SQL 字串,非互動模式腳本自動化、Cron 任務、單行查詢
--batch, -B-B批次模式:表格輸出用 Tab 分隔、不顯示框線資料匯出給程式處理、CSV 產生
--skip-column-names, -N-N不輸出欄位標題列配合 -B 產出純資料、餵給其他指令
--vertical, -E-E垂直顯示結果(每欄一行)寬表、欄位多、內容長時易閱讀
--html, -H-H輸出 HTML 表格快速產生報表網頁、嵌入文件
--xml, -X-X輸出 XML 格式系統整合、API 回應、資料交換
--safe-updates, -U-U拒絕無 WHERE 的 UPDATE/DELETE、限制大結果集防止手滑刪光表、生產環境保護
--auto-rehash啟用自動完成(Tab 鍵補全表名、欄位名)互動式管理大幅提速
--pager指定分頁器(如 less、more)大結果集分頁閱讀、搜尋
--prompt自訂提示符(顯示用戶、主機、資料庫、時間)多環境切換避免誤操作

實戰組合招

1. 自動化備份腳本

#!/bin/bash
mysql -u backup -p${PASS} --batch --skip-column-names \
  -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mydb'" \
  | while read table; do
    mysqldump -u backup -p${PASS} mydb $table | gzip > ${table}_$(date +%F).sql.gz
  done

2. 快速產生 HTML 報告

mysql -u root -p -H -e "
  SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH/1024/1024 AS DATA_MB
  FROM INFORMATION_SCHEMA.TABLES 
  WHERE TABLE_SCHEMA='mydb'
  ORDER BY DATA_LENGTH DESC
" > report_$(date +%F).html

3. 安全的互動式管理

# .my.cnf 設定
[mysql]
auto-rehash
safe-updates
pager=less -iSFX
prompt="\\u@\\h [\\d] \\r:\\m:\\s> "

4. XML 匯出給系統整合

mysql -u root -p -X -e "
  SELECT id, name, email, created_at FROM users WHERE status=1
" > active_users.xml

5. 遠端執行單行指令

ssh db-server "mysql -u admin -p${PASS} -e 'SHOW PROCESSLIST'" | grep -v Sleep

進階技巧

  • --init-command:連線後自動執行指令(如 SET NAMES utf8mb4; SET time_zone='+08:00';)
  • --connect-timeout、--max-allowed-packet:調整連線/傳輸參數
  • --ssl-mode=REQUIRED:強制加密連線
  • --default-auth=authentication_ldap_client:支援 LDAP 認證

版本差異提醒

  • MySQL 8.0 移除 --no-auto-rehash(預設啟用),改用 --disable-auto-rehash
  • 部分舊選項重命名,請參考 mysql --help 確認

將常用選項寫入 ~/.my.cnf [mysql] 區段,或建立別名 alias mysql='mysql --safe-updates --auto-rehash --pager="less -iSFX"',讓每次操作都更安全、高效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved