トップページへ

mysqlやmysqldumpで「 [Warning] Using a password on the command line interface can be insecure.」という警告が表示される場合の対処

小粋空間 » MySQL » mysqlやmysqldumpで「 [Warning] Using a password on the command line interface can be insecure.」という警告が表示される場合の対処

mysqlやmysqldumpで「 [Warning] Using a password on the command line interface can be insecure.」という警告が表示される場合の対処について紹介します。

1.問題点

さくらインターネットでMySQLのバックアップを取得しようと思い、下記のコマンドを実施しました。

$ mysqldump -h mysqlxxx.db.sakura.ne.jp -u hoge -phuga testdatabase > testdatabase.sql

これまでは実行できていたのですが、今回は下記の警告に遭遇しました。

mysqldump: [Warning] Using a password on the command line interface can be insecure.

警告なのでバックアップは取得できたようですが、警告を解消する方法がわかりません。

ということで、mysqldumpで「 [Warning] Using a password on the command line interface can be insecure.」という警告が表示される場合の対処について紹介します。

2.原因

原因は、パスワードを入れてmysqlコマンドやmysqldumpを実行すると、この警告が表示されるようです。

3.対処方法

ここではパスワードを別ファイルにしてコマンドラインにパスワードを入力しない方法を紹介します。

まず、下記の内容を、任意のディレクトリ・任意のファイル名で作成します。ここでは"test.conf"とします。実際には".test.conf"など、ピリオドつきのファイル名がいいと思います。

[client]
password = <パスワード>

ファイルのパーミッションを変更します(後で実施でもOK)。

$ chmod 400 test.conf

パーミッションのライト権を外しておかないと、コマンド実行時に下記のエラーが発生するケースがあるようです。

Warning: World-writable config file '/home/foo/test.conf' is ignored

ファイルを作成したら、下記のコマンドラインを実行します。これで警告が表示されなくなると思います。

$ mysqldump --defaults-extra-file=test.conf -h mysqlxxx.db.sakura.ne.jp -u hoge -phuga testdatabase > testdatabase.sql

コマンドラインの解説ですが、"--defaults-extra-file"オプションで、作成したファイルを読み込んでいます。

配置したディレクトリ以外でコマンドを実行する場合は、下記のように相対パスまたは絶対パスを指定してください。

$ mysqldump --defaults-extra-file=/home/foo/test.conf -h mysqlxxx.db.sakura.ne.jp -u hoge -phuga testdatabase > testdatabase.sql

なお、"--defaults-extra-file"オプションはコマンドの第1パラメータに必ず指定してください。

第2パラメータ以降で指定すると次のエラーになります。

mysqldump: [ERROR] unknown variable 'defaults-extra-file=test.conf'

私はこれでひっかかって随分悩みました(笑)。

« 前の記事へ

次の記事へ »

トップページへ