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

MySQL 客戶端連線完整指南:mysql 命令參數、連線協議、選項檔與批次模式

     編輯:MySQL 資料庫相關知識

mysql 客戶端啟動方式

# 互動模式
mysql -u root -p
mysql -h 10.0.0.1 -u app -p -P 3306 -D mydb

# 批次模式(管道/檔案)
mysql -u root -p mydb < script.sql
cat script.sql | mysql -u root -p mydb
mysql -u root -p -e "SELECT VERSION();"

# 縮寫參數對照
-u, --user=        # 用戶名
-p, --password[=]  # 密碼(不加 = 提示輸入,安全)
-h, --host=        # 主機
-P, --port=        # 埠
-D, --database=    # 預設資料庫
--protocol=TCP|SOCKET|PIPE|MEMORY
--compress         # 壓縮協議
--ssl-mode=REQUIRED

選項檔優先順序與結構

# 讀取順序(後者覆蓋前者)
1. /etc/my.cnf           # 全域
2. /etc/mysql/my.cnf     # Debian/Ubuntu
3. $MYSQL_HOME/my.cnf    # 伺服器基礎目錄
4. defaults-extra-file   # --defaults-extra-file= 指定
5. ~/.my.cnf             # 用戶
6. 命令列參數            # 最高優先級

# 區塊結構
[client]           # 所有客戶端通用
[mysql]            # mysql 專用
[mysqldump]        # mysqldump 專用
[mysqladmin]       # mysqladmin 專用

# 範例
[client]
user = app_user
password = "secret"
host = 10.0.0.1

[mysql]
prompt = "(\u@\h) [\d]> "
auto-rehash
safe-updates

連線協議選擇

自動選擇:localhost → Socket,127.0.0.1 → TCP,可用 --protocol 強制。

批次模式最佳實踐

  • 腳本檔每句以 ; 或 \g 結尾
  • 錯誤處理:--force 繼續執行,--silent 抑制表格輸出
  • 輸出格式:--html、--xml、--vertical(\G)、--tab (TSV)
  • 結果導向檔案:mysql ... > output.txt 2>&1

常用內建命令

協議適用場景連線字串
TCP/IP跨主機、容器、雲-h host -P 3306
Unix Socket本機、最高效能-S /var/run/mysqld/mysqld.sock
Named PipeWindows 本機--protocol=PIPE
Shared MemoryWindows 本機--protocol=MEMORY

疑難排解

命令縮寫功能
help\h幫助
quit\q退出
clear\c清除當前語句
connect\r重新連線
status\s連線狀態
use db\u db切換資料庫
source file\. file執行腳本檔
tee file\T記錄輸出到檔案
notee\t停止記錄
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤原因解決
ERROR 2002 (HY000)Socket 連線失敗檢查 mysqld 運行、socket 路徑、--protocol=TCP
ERROR 1045 (28000)認證失敗確認用戶/密碼/主機、flush privileges、plugin
ERROR 1130 (HY000)Host not allowedGRANT ... TO 'user'@'%' / skip_name_resolve
ERROR 2013查詢中斷連線max_allowed_packet、wait_timeout、網路