MySQL 程序啟動時讀取環境變量決定默認行為,分類速查:
🔧 客戶端連接類(最常用)
| 變量 | 作用 | 示例 |
MYSQL_HOST | 默認主機 | export MYSQL_HOST=10.0.0.1 |
MYSQL_TCP_PORT | TCP 端口 | 3306 |
MYSQL_UNIX_PORT | Unix socket 路徑 | /tmp/mysql.sock |
USER | Windows/NetWare 默認用戶 | root |
MYSQL_PWD | 默認密碼 ⚠️ 不安全 | secret |
MYSQL_PS1 | 提示符格式 | '\\u@\\h [\\d]>' |
MYSQL_HISTFILE | 歷史文件路徑 | ~/.mysql_history |
MYSQL_DEBUG | 調試跟蹤 | d:t:O,/tmp/client.trace |
🛠 構建/編譯類
| 變量 | 作用 |
CC/CXX | C/C++ 編譯器 |
CFLAGS/CXXFLAGS | 編譯標誌 |
LD_RUN_PATH | 運行時庫搜索路徑(libmysqlclient.so) |
📁 路徑/運行類
| 變量 | 作用 |
HOME | 歷史文件默認目錄基準 |
TMPDIR | 臨時文件目錄(大排序受益) |
TZ | 時區(影響 NOW() 等) |
UMASK/UMASK_DIR | 文件/目錄創建掩碼 |
PATH | 尋找 mysql/mysqld/mysqldump 等 |
📦 程序專用變量
MYSQL_GROUP_SUFFIX:--defaults-group-suffix 等效。
MYSQL_HOME:實例專屬 my.cnf 目錄(5.0.3+)。
DBI_USER/DBI_TRACE:Perl DBI 專用。
最佳實踐
- 生產環境禁用 MYSQL_PWD,改用
~/.my.cnf + chmod 600 或 mysql_config_editor。
- 統一
TZ 為 Asia/Shanghai,避免時區導致 DATETIME 寫入偏差。
- 大數據導入導出設置
TMPDIR=/mnt/ssd/tmp 加速臨時表/排序。
- 腳本中用
MYSQL_PS1='\\R:\\m:\\s \\u@\\h [\\d]>' 顯示主從角色、毫秒級時間。
查看當前生效值
mysql --help | grep -A1 '^ -' | head -40
# 或
env | grep -i mysql