LoginSignup
21
20

More than 5 years have passed since last update.

MySQLのバックアップスクリプトで Warning: Using a password on the command line interface can be insecure って出るようになった

Last updated at Posted at 2014-05-04

MySQLの5.6くらいからコマンドラインでパスワードを直書きするとWarningが出るようになった。
こんな感じ

$ mysqldump -u root -ppassword -A -x > /tmp/dump.db
Warning: Using a password on the command line interface can be insecure.

-pの後に直接パスワード指定したら危険だというWarningかな。
psで見ても

mysqldump -u root -px xxxx -A -x

みたくxxxになってたのでそれなりに安全だと思ってて気にしなかったのだけど、バックアップスクリプトとしてcronで回してたので定期的にメールがきて困ったから対策。

結論として以下のようにするとOKでした。

$ mysqldump --defaults-extra-file=<(printf '[mysqldump]\npassword=%s\n' password) -u root --single-transaction --master-data=2 -A > dump.db

というわけで以下のようなスクリプトをcronで回すようにしました。(/bin/shだと多分エラーになるのでbashで。)

mysqldump.sh
#!/bin/bash
USER=root
PASS=password

mysqldump --defaults-extra-file=<(printf '[mysqldump]\npassword=%s\n' $PASS) -u $USER --single-transaction --master-data=2 -A > /path/to/my_dumpall_`date +%Y%m%d`.db
mysqladmin --defaults-extra-file=<(printf '[mysqladmin]\npassword=%s\n' $PASS) -u $USER flush-hosts

OLDDATE=`date "-d2 days ago" +%Y%m%d`
rmfile=/path/to/my_dumpall_$OLDDATE.db
if [ -e $rmfile ]; then
    sleep 5m
    rm -f $rmfile
fi

はまりポイント

defaults-extra-file のオプションの位置は一番初めでないとエラーになります。
例えば、こんな感じで ユーザーオプションの後ろにもってきちゃうと・・・

mysqldump -u $USER --defaults-extra-file=<(printf '[mysqldump]\npassword=%s\n' $PASS) --single-transaction --master-data=2 -A > /path/to/my_dumpall_`date +%Y%m%d`.db

こんなエラーになります。

mysqldump: unknown variable 'defaults-extra-file=/dev/fd/xx'

特にmysqlのエイリアス設定で

alias mysql='mysql --skip-secure-auth'
alias mysqldump='mysql --skip-secure-auth'

とか設定されてた場合は同様の原因で動かなくて原因も気づきにくいので注意です。

参考

MySQLのコマンドラインで-pオプションを使わずにパスワードを指定する方法 - インフラエンジニアway - Powered by HEARTBEATS

Problem with mysqldump: “--defaults-extra-file” option is not working as expected - Stack Overflow

21
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
20