mysql5.6以後では、-pオプションをつけてmysql、mysqladmin、mysqldumpを実行する時、以下のWarningが表示されます。
$ /usr/bin/mysql -u root -ppassowrd -e 'SELECT * FROM information_schema.PROCESSLIST;'
Warning: Using a password on the command line interface can be insecure.
+--------+------+----------------+-----------+---------+-------+-----------+----------------------------------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+--------+------+----------------+-----------+---------+-------+-----------+----------------------------------------------+
| 122379 | root | localhost | NULL | Sleep | 1462 | | NULL |
| 122393 | root | localhost | NULL | Query | 0 | executing | SELECT * FROM information_schema.PROCESSLIST |
+--------+------+----------------+-----------+---------+-------+-----------+----------------------------------------------+
実行はできるんですが、問題なのは、cronで動いている時、MAILTOが設定されると、この警告に引っかかって、メールが飛んできます。
さらに起きた問題なのはzabbix監視です。
例えば、zabbixでmysqlのプロセス数を監視するために、以下のスクリプトを作りました。
#!/bin/sh
PASSWORD="password"
PROCESS_COUNT=`/usr/bin/mysql -u root -p${PASSWORD} -N -e 'SELECT count(*) FROM information_schema.PROCESSLIST;'`
echo ${PROCESS_COUNT}
zabbix上にはグラフで表示するように、データ型が数値(整数)であるアイテムを作成しました。
zabbixからスクリプトを実行する時、当前「Warning: Using a password on the command line interface can be insecure.」が出ました。
実行結果は数字ではありませんので、zabbixのアイテムのステータスが取得不可になり、正常に監視ができません。
回避方法
環境変数MYSQL_PWDを使います。
上記のスクリプトを以下のように修正すれば、Warningが出なくなりました。
#!/bin/sh
PASSWORD="password"
PROCESS_COUNT=`MYSQL_PWD=${PASSWORD} /usr/bin/mysql -u root -N -e 'SELECT count(*) FROM information_schema.PROCESSLIST;'`
echo ${PROCESS_COUNT}
もちろん、zabbix監視も動いて、グラフも生成されました。
参考