首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 客戶端命令列進階技巧大全:提示符、別名、垂直顯示、CSV 匯出、批次匯入、靜音模式

     編輯:MySQL 綜合教學

技巧一:自訂提示符,時刻知曉身在何處

-- 臨時修改(當前連線生效)
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
\\pTCP 埠號3306
\\_空格
\\r當前時間 (HH:MM:SS)14:30:45
\\m分鐘30
\\s秒45
\\v伺服器版本8.0.36

技巧二:Shell 別名,一鍵執行常用查詢

# ~/.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    |
+----------+

技巧三:垂直顯示結果(\G),寬表神器

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)

每欄一行,無需水平捲動,適合欄位多、值長的表。

技巧四:查詢結果直接匯出 CSV

-- 伺服器端匯出(需 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

技巧五:批次匯入資料

LOAD DATA INFILE(最快,伺服器端讀檔)

-- 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`);

多欄位 TSV 檔案

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 客戶端

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,開箱即用。

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