どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

スクリプトでmysqlコマンドを実行すると「Warning: Using a password on the command line interface can be insecure」


インフラエンジニアの伊藤です。
弊社では、スクリプトを使って毎日夜間にデータベースのバックアップを行っています。

よく使うMySQLのバージョンは5.5が多いのですが、5.6を使う機会がありまして、
その際にいつもどおりスクリプトを設置して実行してみると、こんなログが出たわけです。

Warning: Using a password on the command line interface can be insecure

今までと同じスクリプトを使っているのに見慣れないWarningが出力されてました。

出るだけならまだしも、cronさんがメールしてくるんですよね。。。

パスワードがコマンドラインインターフェイスで見えていることはセキュアじゃないよ

出力されているWarningメッセージは簡単に言うとこんな意味になります。
スクリプトで出力される以外に、コマンドでパスワード直打ちした場合も出力されます。

下記はmysqlコマンドで-pオプションで引数にパスワードを付けてログインした場合です。
2行目に出力されていることがわかると思います。

# mysql -uroot -ppassword
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3548981
Server version: 5.6.30-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

[-p]だけにして、別でパスワードを打つ場合は出力されません。
直に書いていることがセキュアじゃない!!というWarningですので。

パスワードの部分をconfファイルに書き出す

このWarningが出ないようにする対処法は、外部ファイルから読み出すという方法です。

外部から読み出すファイルを作成します。

# vim dbaccess.cnf
[client]
user = hoge
password = hogehoge
host = 192.168.1.1

パスワードが書かれたファイルなので、アクセス権は最小限に
# chmod 400 dbaccess.cnf

mysqlコマンドやmysqldumpコマンドにおいて、このファイルを読みだすようにしてあげればOKです。

# mysql --defaults-extra-file=dbaccess.cnf
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 72755232
Server version: 5.6.30-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

無事接続が出来ますので、これをスクリプトに組み込んであげればOKですね。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.