MySQL 所有基於 libmysqlclient 的客戶端程式(mysql、mysqladmin、mysqldump 等)共享一套**環境變數、選項檔案、啟動參數**機制。本篇建立統一認知框架,避免重複查閱各工具手冊。
客戶端通用環境變數
| 變數 | 用途 | 預設值 | 安全性/建議 |
MYSQL_PWD | 指定連線密碼 | 無 | 🔴 **極不安全**:ps -ef 可見明文密碼,**嚴禁生產使用** |
MYSQL_HISTFILE | mysql 互動模式歷史記錄檔路徑 | $HOME/.mysql_history | 可改向 /dev/null 禁用歷史,或設定專用檔案 |
HOME | 用戶家目錄,影響 .my.cnf、歷史檔讀取 | 系統預設 | 正常使用 |
選項檔案機制
- 所有客戶端程式啟動時依序讀取:
1. /etc/my.cnf (全域)
2. /etc/mysql/my.cnf (Debian/Ubuntu 慣例)
3. ~/.my.cnf (用戶級)
4. --defaults-extra-file 指定額外檔案
- 常用群組:
[client] (所有客戶端)、[mysql]、[mysqladmin]、[mysqldump] 等專用群組。
- 覆蓋優先級:命令列參數 > 選項檔案 > 環境變數 > 內建預設值。
--no-defaults 忽略所有選項檔案;--defaults-file=/path 僅讀指定檔案。
核心程式分類總覽 (14 款)
| 類別 | 程式 | 核心職責 |
| 表維護 | myisamchk | MyISAM 檢查/修復/優化/分析 (功能最全) |
isamchk | ISAM 表維護 (舊版極少用) |
| 發布構建 | make_binary_release | 產生二進制發布包 |
msql2mysql | mSQL → MySQL 腳本轉換 |
| 客戶端/管理 | mysql | SQL Shell (互動/批次),GNU readline |
mysqladmin | 管理操作 (建庫/刪庫/刷新/狀態/關機) |
mysqlaccess | 權限檢查腳本 |
mysqlbug | Bug 報告模板產生器 |
mysqlshow | Schema 快速瀏覽 (庫/表/欄位/索引) |
| 資料遷移 | mysqldump | 邏輯備份導出 (SQL/CSV/TSV) |
mysqlimport | 文字檔匯入 (LOAD DATA INFILE 封裝) |
replace | 通用字串替換工具 |
| 伺服器端 | mysqld | SQL 守護進程 (核心服務) |
safe_mysqld / mysqld_safe | 啟動包裝器 (自動重啟、日誌、核心轉儲) |
快速上手:mysql 客戶端常用模式
- 互動式:
mysql -uroot -p db_name (含歷史、自動補全、分頁)。
- 批次執行腳本:
mysql db_name < script.sql > output.tab (輸出 Tab 分隔,適合管道處理)。
- 大結果集:
mysql --quick db_name < script.sql (使用 mysql_use_result() 逐行讀取,不緩存全量結果)。
- 獲取完整選項:
mysql --help。
系列導覽
- (一)環境變數、選項檔案、程式分類總覽 ← 當前篇
- (二)14 大工具詳細功能、範例、選型決策樹