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

Linux 清除 MySQL 操作歷史記錄(.mysql_history)與 Bash History

     編輯:MySQL 資料庫相關知識

MySQL 客戶端會將互動模式下執行的每條 SQL 寫入 ~/.mysql_history,若包含敏感資料(密碼、個資)需定期清理。

1. 清空當前使用者的 MySQL 歷史

echo '' > ~/.mysql_history
# 或
cat /dev/null > ~/.mysql_history

2. 禁用 MySQL 歷史記錄(永久)

在 ~/.bashrc 或 ~/.profile 加入:

export MYSQL_HISTFILE=/dev/null

重新登入後,MySQL 客戶端將不再寫入歷史檔。

3. Bash 歷史記錄管理

  • 清空當前 Session 記憶體緩衝:history -c
  • 將緩衝寫入檔案:history -w
  • 清空檔案:echo '' > ~/.bash_history
  • 限制保留條數:修改 /etc/profile 或 ~/.bashrc 的 HISTSIZE=1000 改為較小值或 0。

4. 避免敏感 SQL 寫入歷史的技巧

  • 在 SQL 前加空格(需 HISTCONTROL=ignorespace):
    SELECT * FROM users WHERE pwd='secret';
  • 使用 mysql -e "SQL" 非互動模式執行,不寫入歷史。
  • 將密碼放在 ~/.my.cnf 的 [client] 區塊,避免命令列明文。

5. 系統級審計(生產環境建議)

開啟 MySQL 一般查詢日誌或審計插件(MariaDB Audit Plugin、MySQL Enterprise Audit),集中記錄所有操作,而非依賴客戶端歷史檔。

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