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

MySQL 客戶端密碼輸入安全操作指南:四種方式風險對比與最佳實踐 (含配置文件路徑圖解)

     編輯:MySQL 綜合教學

四種輸入方式風險分級

1. 命令行明文 -ppass / --password=pass —— 高危

mysql -u ksharpdabu -pksharppassword db_name
  • ps -f 可見密碼 (部分版本顯示星號,但 kill 時仍洩露)。
  • 客戶端初始化會零覆蓋參數,但存在短暫可見窗口。
  • 生產嚴禁。

2. 交互式 -p (無參數) —— 安全,限人工

mysql -u ksharp -p da_name
Enter password: *********
  • 終端不回顯,進程列表不可見。
  • 僅適用交互場景,腳本首行可能被誤讀為密碼。

3. 配置文件 ~/.my.cnf [client] password=... —— 推薦自動化

[client]
password=your_pass
  • 必須 chmod 600 ~/.my.cnf (僅擁有者讀寫)。
  • MySQL 讀取順序 (Unix):
    /etc/my.cnf → /etc/mysql/my.cnf → MYSQL_HOME/my.cnf → ~/.my.cnf (後讀優先)。
    MYSQL_HOME 環境變量指向服務器 my.cnf 目錄;未設時若 DATADIR 有 my.cnf 則指向 DATADIR,否則指向 BASEDIR。
  • 多配置文件存在時,後讀取的選項覆蓋先讀取的。
  • Unix 忽略「全局可寫」配置文件 (安全機制)。
  • Windows 讀取路徑:C:\my.cnf、C:\Windows\my.ini、INSTALLDIR\my.ini、DATADIR\my.cnf。

4. 環境變量 MYSQL_PWD —— 極高危,禁止

  • ps 可顯示環境變量,密碼完全暴露。

歷史文件防洩漏

  • ~/.mysql_history 記錄交互命令,含 CREATE USER/GRANT/SET PASSWORD 明文密碼 → chmod 600。
  • Shell 歷史 ~/.bash_history 同理 → 嚴格權限。

配置文件讀取順序圖解

Unix MySQL 選項文件讀取順序

Windows MySQL 選項文件讀取順序

最佳實踐速查表

場景推薦方式關鍵動作
人工登錄-p 交互式無
腳本/定時任務~/.my.cnf [client] passwordchmod 600 ~/.my.cnf
應用連接池配置中心/密碼管理系統運行時注入,不落盤明文
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved