-- 臨時修改(當前連線生效)
mysql> PROMPT mysql (\u@\h) [\d]>
PROMPT set to 'mysql (\u@\h) [\d]> '
mysql (root@localhost) [test]>
-- 永久修改(寫入 ~/.my.cnf)
[mysql]
prompt=mysql \\u@\\h [\\d]>\\_
| 序列 | 含義 | 範例 |
|---|---|---|
\\u | 用戶名 | root |
\\h | 主機名 | localhost / db.example.com |
\\d | 當前資料庫 | test / (none) |
\\D | 完整日期時間 | 2024-01-15 14:30:45 |
\\p | TCP 埠號 | 3306 |
\\_ | 空格 | |
\\r | 當前時間 (HH:MM:SS) | 14:30:45 |
\\m | 分鐘 | 30 |
\\s | 秒 | 45 |
\\v | 伺服器版本 | 8.0.36 |
# ~/.bashrc 或 ~/.zshrc
alias db-count='mysql -u app_user -p -e "SELECT COUNT(*) FROM users" app_db'
alias db-slow='mysql -u root -p -e "SHOW PROCESSLIST" | grep -v Sleep'
# 使用
$ db-count
Enter password: ********
+----------+
| COUNT(*) |
+----------+
| 12345 |
+----------+
mysql> SELECT * FROM users WHERE id=1\G
*************************** 1. row ***************************
id: 1
name: Alice
email: alice@example.com
phone: 0912345678
address: Taipei
created_at: 2024-01-15 10:00:00
1 row in set (0.00 sec)
每欄一行,無需水平捲動,適合欄位多、值長的表。
-- 伺服器端匯出(需 FILE 權限、secure_file_priv 目錄)
SELECT * FROM `users`
INTO OUTFILE '/var/lib/mysql-files/users.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
-- 客戶端匯出(無特殊權限,適合腳本)
mysql -u root -p -B -e "SELECT * FROM users" db_name | sed 's/\t/,/g' > users.csv
-- 含標題列
mysql -u root -p -B -e "SELECT 'id','name','email' UNION ALL SELECT id,name,email FROM users" db_name | sed 's/\t/,/g' > users.csv
-- CSV 檔案:每行一筆,欄位逗號分隔
LOAD DATA INFILE '/var/lib/mysql-files/categories.csv'
INTO TABLE `categories`
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(`name`);
LOAD DATA INFILE '/var/lib/mysql-files/products.tsv'
INTO TABLE `products`
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(`id`, `name`, `price`, `category_id`);
# 臨時禁用
mysql -u root -p --no-beep
# 永久禁用(~/.my.cnf)
[client]
no-beep
# 啟動參數
mysql -u root -p --safe-updates
# 或 ~/.my.cnf
[mysql]
safe-updates
-- 效果:
-- UPDATE/DELETE 必須有 WHERE 條件且使用索引
-- SELECT 自動加 LIMIT 1000
-- 適合生產環境日常操作
↑/↓:瀏覽歷史指令Ctrl+R:反向搜尋歷史\\c:取消當前輸入的多行語句\\g / ;:執行語句\\G:垂直顯示執行edit:用 $EDITOR 編輯複雜查詢(需設定 EDITOR 環境變數)mysql> \! ls -la /var/lib/mysql-files/
mysql> \! df -h
mysql> \! date
mysql> \? -- 顯示所有客戶端指令
mysql> STATUS; -- 顯示連線狀態、編碼、版本、埠號等
mysql> \s -- STATUS 縮寫
MySQL 客戶端命令列遠不止 SELECT。掌握 提示符自訂、Shell 別名、垂直顯示、CSV 匯出、LOAD DATA 批次匯入、靜音模式、安全更新、系統指令,能將日常運維效能提升 50% 以上。建議將常用設定寫入 ~/.my.cnf,開箱即用。