この記事では、MySQLデータベースを特定の間隔でファイルに自動的にバックアップするcronジョブを設定する方法について説明します。
cronジョブを使用した自動データベースバックアップ
MySQLデータベースをバックアップするcronジョブを実行する方法は2つあります。 MySQLログイン情報をcronjobコマンド自体に含めるか、構成ファイルを使用してMySQLログイン情報を保存することができます。
メソッド#1:MySQLログイン情報をcronジョブコマンドに含める
次のコマンドを実行するcronジョブを作成することにより、MySQLデータベースのスケジュールバックアップを実行できます。
/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql
dbusernameをデータベースユーザーに、dbpasswordをデータベースユーザーのパスワードに、dbnameをバックアップするデータベースに、pathをバックアップファイルを保存するパスに置き換えます。この例では、 backup.sqlを使用しています バックアップのファイル名に使用できますが、任意のファイル名を使用できます。
- パスワードを一重引用符(')で囲むと、特殊文字が正しく処理されます。
- コマンドが正常に実行されると、出力は生成されません。ただし、エラーまたは構成の誤りがある場合、アカウントの構成によっては、コマンド出力を含む電子メールメッセージを受信する場合があります。コマンドが失敗したときに電子メールメッセージを抑制するには、cronジョブコマンドの最後に次のテキストを追加します:
2>/dev/null
ただし、ほとんどの人は、cronジョブが失敗したときに通知を受け取りたいと考えています。
cPanelを使用してcronジョブを作成する方法については、こちらの記事をご覧ください。
方法#2:構成ファイルを使用してMySQLログイン情報を保存する
または、MySQLログイン情報を格納する構成ファイルをホームディレクトリに作成することもできます。この方法を使用すると、cronジョブコマンドにログイン情報を含める必要はありません。これを行うには、次の手順に従います。
- .my.cnfという名前のファイルを作成します / home /で ユーザー名ディレクトリ。ユーザー名をアカウントのユーザー名に置き換えます。先頭にが含まれていることを確認してください。 ファイル名に。
- 次のテキストをコピーして.my.cnfに貼り付けます ファイル。 dbusernameをデータベースユーザーに置き換え、dbpasswordをデータベースユーザーのパスワードに置き換えます。
[client] user = dbusername password = "dbpassword" host = localhost
-
次のコマンドを実行するcronジョブを作成します。 dbnameをバックアップするデータベースの名前に置き換え、pathをバックアップファイルを保存するパスに置き換えます。この例では、 backup.sqlを使用しています バックアップのファイル名に使用できますが、任意のファイル名を使用できます。
mysqldump --routines dbname > /path/backup.sql
コマンドが正常に実行されると、出力は生成されません。ただし、エラーや構成の誤りがある場合は、アカウントの構成によっては、コマンド出力を含む電子メールメッセージを受信する場合があります。コマンドが失敗したときに電子メールメッセージを抑制するには、cronジョブコマンドの最後に次のテキストを追加します。
2>/dev/null
ただし、ほとんどの人は、cronジョブが失敗したときに通知を受け取りたいと考えています。
cPanelを使用してcronジョブを作成する方法については、こちらの記事をご覧ください。
mysqldumpの詳細については プログラムについては、http://dev.mysql.com/doc/refman/5.1/en/mysqldump.htmlにアクセスしてください。