命令行是 MySQL 管理、腳本自動化、排查故障的基礎入口。本文整理 Windows 與 Linux 系統下啟動客戶端、指定連接參數、處理密碼、執行 SQL 文件的標準操作,並解決「找不到 mysql 命令」「密碼含特殊字符」等常見問題。
cmd → 回車。方式 A:臨時進入目錄
cd /d "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysql -u root -p
方式 B:將 bin 目錄加入系統 PATH(永久生效,推薦)
Path → 「編輯」→ 「新建」→ 添加 MySQL bin 完整路徑(如 C:\Program Files\MySQL\MySQL Server 8.0\bin)。mysql 即可識別。mysql -h 主機 -P 端口 -u 用戶 -p[密碼] [數據庫]
# 示例
mysql -u root -p # 本地 root,交互輸入密碼
mysql -u root -p'StrongPass123!' # 密碼直接跟在 -p 後(無空格),含特殊字符需引號
mysql -h 192.168.1.100 -P 3306 -u app -p db_name # 遠程連接指定庫
注意: -p 後不能有空格,否則會將下一個參數視為密碼。交互式輸入最安全(不留歷史記錄)。
mysql -u root -p
參考「Linux 解決 mysql command not found」一文,執行 ln -sf /usr/local/mysql/bin/mysql /usr/bin/ 或配置 /etc/profile.d/mysql.sh。
# 顯式指定 socket 文件,避免 TCP 開銷
mysql -u root -p -S /var/run/mysqld/mysqld.sock
# 或
mysql -u root -p --protocol=SOCKET
# 方式 1:重定向輸入
mysql -u root -p db_name < backup.sql
# 方式 2:source 命令(已進入 mysql 交互模式)
mysql> SOURCE /path/to/backup.sql;
# 方式 3:-e 參數執行單條語句(適合腳本調用)
mysql -u root -p -e "SELECT VERSION(); SHOW DATABASES;"
mysql -u root -p,回車後輸入,不留痕跡。[client] user=root password="xxx" 寫入 ~/.my.cnf(權限 600),命令行直接 mysql 免密登錄。MYSQL_PWD=xxx(進程列表可見,僅限臨時腳本)。-p'password' 寫在腳本/歷史記錄中。| 報錯 | 原因 | 對策 |
|---|---|---|
Access denied for user 'root'@'localhost' | 密碼錯誤/權限表異常 | 重置密碼參考 ERROR 1045 文檔 |
Can't connect to MySQL server on 'localhost' (10061) | 服務未啟動/端口錯誤 | net start mysql / systemctl start mysqld |
mysql: command not found | PATH 缺失 | 配置 PATH 或軟鏈接 |
Unknown database 'xxx' | 庫不存在 | 先 CREATE DATABASE 或去掉庫名參數 |
命令行登錄核心:確保 mysql 可執行文件在 PATH 中 → 掌握 -h/-P/-u/-p/-S 參數組合 → 養成交互式輸入密碼/配置文件免密的安全習慣。Windows 必做「加入 PATH」,Linux 必做「軟鏈接或 profile.d」,一次配置,長期受益。