MySQL 5.6 起,mysqldump -uroot -ppassword 等命令列直接帶密碼會輸出警告:Warning: Using a password on the command line interface can be insecure. 因進程列表(ps -ef)可被同機器其他用戶看到明文密碼。
~/.my.cnf(或 /etc/my.cnf 的 [client]/[mysqldump] 區段):[mysqldump]
user=root
password=your_strong_password
chmod 600 ~/.my.cnf(僅擁有者可讀寫)。mysqldump db_name > backup.sql
mysqldump -u root -p db_name > backup.sql
# 提示 Enter password: 時輸入,不會顯示在歷史/進程列表
[mysqldump]、[mysql]、[client] 分別配置,避免權限過度共享。SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER, RELOAD 等最小權限。--defaults-extra-file=/path/to/backup.cnf 指定專用配置檔,不污染全域配置。[root@host ~]# mysqldump db_name > backup.sql
[root@host ~]# echo $?
0
# 無任何 Warning 輸出