【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始!

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

スクリプトで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ですね。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
7
読み込み中...
7 票, 平均: 1.00 / 17
63,414
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始いたします!

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始いたします!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author