0

を使用して、MySQL のすべてのデータベースの毎日のダンプを作成したい

イベントスケジューラ

、今ではイベントを作成するための次のクエリがあります。

DELIMITER $$
CREATE EVENT `DailyBackup`
ON SCHEDULE EVERY 1 DAY STARTS '2015-11-09 00:00:01'
ON COMPLETION NOT PRESERVE ENABLE
DO 
BEGIN
mysqldump -user=MYUSER -password=MYPASS all-databases > CONCAT('C:\Users\User\Documents\dumps\Dump',DATE_FORMAT(NOW(),%Y %m %d)).sql
END $$
DELIMITER ;

問題は、MySQL がコマンド'mysqldump'を認識していないようで、次のようなエラーが表示されることです: Syntax error: missing 'colon'。私はSQLの専門家ではなく、解決策を見つけようとしましたが、できませんでした.誰かが私を助けてくれることを願っています.

編集:

このステートメントを cron タスクにするのを手伝ってください

4

3 に答える 3

2

Windows の場合、必要なコマンドで .bat ファイルを作成し、スケジュールに従ってその .bat ファイルを実行するスケジュールされたタスクを作成します。

この方法で .bat ファイルを作成し、必要に応じてユーザー名、パスワード、およびデータベース名を置き換えます。

mysqldump --opt --host=localhost --user=root --password=yourpassword dbname > C:\some_folder\some_file.sql

次に、スタート メニュー、コントロール パネル、管理ツール、タスク スケジューラに移動します。アクション > タスクの作成を押します。[アクション] タブに移動し、[新規] をクリックして、.bat ファイルを参照し、タスクに追加します。次に、トリガー タブに移動し、[新規] をクリックして、毎日のスケジュールを定義します。http://windows.microsoft.com/en-US/windows/schedule-taskを参照してください。

7zip のようなツールを使用して、バックアップをすべて同じコマンドで圧縮することをお勧めします (7zip はコマンド ラインから呼び出すことができます)。7zip をインストールした例は次のようになります。

mysqldump --opt --host=localhost --user=root --password=yourpassword dbname | 7z a -si C:\some_folder\some_file.7z

これを使用して、ファイル名に日付と時刻を含めます。

set _my_datetime=%date:~-4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%_%time:~9,2%_
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
echo %_my_datetime%
mysqldump --opt --host=localhost --user=root --password=yourpassword dbname | 7z a -si C:\some_folder\backup_with_datetime_%_my_datetime%_dbname.7z
于 2015-09-12T00:04:30.967 に答える
1

@Drew は、cronjob を使用することを意味します。cronjon を追加するには、次のコマンドを使用して crontab を開始します。

crontab -e

次のように、最後に新しいエントリを追加します。

0 0 * * * mysqldump -u username -ppassword databasename > /path/to/file.sql

これにより、毎日 00:00 にデータベース ダンプが実行されます。

于 2015-09-11T23:39:09.983 に答える
1

はい、次のようなものを実行するようにスケジューラをプログラムします。

C:/path/to/mysqldump.exe -u ユーザー名 -ppassword データベース名 > /path/to/file.sql

于 2015-09-11T23:51:50.693 に答える