読者です 読者をやめる 読者になる 読者になる

まったりぺちばーのメモ帳

知識を高めるべく、様々なものを勉強中。 そのアウトプットの場にできればいいなと思っています。

MySQL5.7でmysqldump時にwarning

MySQL

 個人の簡単なサイトを運営しているのですが、そこのレンタルサーバーがPHP5.3からずっと更新されない。
 そこで、今回の勉強や今後公開したいものを考慮し、VPSを借りることに。

 借りたVPSはこちら
www.conoha.jp
 
 特徴としては、最安値の512MBプランを最初に借りても性能が足りなくなったら他のプランに移行できるみたいです。
 (さくらVPSの512MBプランでは無理みたいだったので)

 今回はデータベース(MySQL5.7)のバックアップを取ろうとしたときの話。


 cronにてデータベースのバックアップ処理を定期的に実行させようとしてシェルスクリプトを作成して以下の内容を登録。
 ※DB内部はすべてInnoDBテーブルの為、「--single-transaction」オプションを使用しています。

# 特定のDBをバックアップする
mysqldump -u [ユーザー名] -p[パスワード] -h[ホスト名] --single-transaction [DB名] > [ファイル名].sql 

 
 試しに実行すると、バックアップは取れるもののwarningが出ていました。
 どうやらMySQL5.6からバスワードをコマンドライン内に記載すると下記の警告がでるみたいです。

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

 いろいろ調べたところmysqlコマンドの解説はあったのですが、mysqldumpの方を書いてる方少なかったので苦戦しました。
 とりあえず、まずは以下の形で解消。

MYSQL_PWD=[パスワード] mysqldump ~

 コマンドラインでパスワードを記載するのと変わらないのでこれでもいいかと思ったのですが、セキュリティ的にあまりよろしくないとのこと。
 外部ファイルに設定を隔離してそれを読み込むことで解消できるとのことで、設定をした翌日に外部ファイルを使用する形に変更しました。

vi /etc/mysqldump_backup.conf
[mysqldump]
user=[ユーザー名]
password=[パスワード]
hostname=[ホスト名]
# 特定のDBをバックアップする
mysqldump --default-extra-file=/etc/mysqldump_backup.conf --single-transaction [DB名] > [ファイル名].sql

 今回の個人用の技術メモになります。
 文章力がもう少し欲しいところですが、メモということでご了承ください。
 (慣れてきたら書き直せたらいいかなとは思ってます)