最近在部署Zabbix時需要用腳本取得一些MySQL的返回參數,需要是numberic格式的,但是調用腳本時總是輸出這一句:
Warning: Using a password on the command line interface can be insecure.
grep -v也是處理不掉的,很是煩人,在網上翻了翻解決掉,記錄於此:
Mysql命令有個如下參數:
--defaults-extra-file=# Read this file after the global files are read.
因此編輯一個password.txt的文件:
[client]
user=leo
password=leo
腳本中的MySQL連接使用mysql --defaults-extra-file=password.txt的格式,這樣就不會報insecure的報錯啦。
后來查看mysql命令行的manual,發現個更簡潔的辦法:
因為mysql命令讀取配置文件的順序為/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf,所以可以將賬號密碼寫入~/.my.cnf中,這樣執行時只需要指定-u參數即可,注意此文件權限建議設置為600。
# ~/.my.cnf示例: [client] user=root password=<你的密碼> # 上述的[client]也可以替換為[mysql]
注意:
這個報錯是和mysql client相關的,如果你使用低版本的mysql客戶端,那么就不會報錯。例如你使用mysql-5.1.73-5.el6_6.x86_64包安裝的/usr/bin/mysql就不會產生這個warning,使用MySQL5.7或者8.0的mysql命令就會有此報錯。