スポンサードサーチ

WordPressなどではDBにMySQLを使いますが、障害発生時の復旧対応のために、DBのバックアップは取っておきたいところです。

WordPressには、Plugin(プラグイン)でバックアップを取れるものとして、BackWPupUpdraftPlusなどの有名なPlugin(プラグイン)がありますが、ページ数が膨大な場合にはこれらのPlugin(プラグイン)を使うのはサーバの負荷的にも望ましくありません。

そこで、VPSなどのcronが利用できる場合にはシェルスクリプトを書いて、定期的にバックアップを取っています。

しかし、スクリプトを設置して実行してみると、こんなWarningが出る場合があります。

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

パスワードをそのまま埋め込むのは望ましくない

これは、「警告:コマンドラインインターフェイスでパスワード使うのは安全ではない場合があります」というメッセージで、パスワードをそのままシェルスクリプトに記述するのは望ましくない、ということです。

パスワードを別ファイルに

このWarningは、パスワードを外部ファイルから読み出すようにすれば出なくなります。

そこで、MySQLのユーザー名とパスワードを保存したファイルを別に作成します。

# vi mysql-dbaccess.cnf
[client]
user = mysqlusername
password = mysqlpassword

作成したファイルのパーミッションは、他から利用できないように最小限の権限に設定。

# chmod 400 mysql-dbaccess.cnf

これで設定は完了です。

MySQLコマンドを実行してみると、Warninngが出ることなく、無事にMySQLにログインができました。

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

Copyright (c) 2000, 2020, 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.

シェルスクリプトから呼び出すときは、以下のように記述すれば動きます。

 mysqldump --defaults-extra-file=mysql-dbaccess.cnf -h HOST_NAME DB_NAME > OUTPUT_FILE_NAME

スポンサードサーチ