2013-02-02 11 views
26

Esiste un modo per eseguire il backup automatico del database MySQL in determinati momenti della giornata per i server designati o inviare un'e-mail con un allegato. Quale mai secondo voi è il modo migliore e più sicuro Per realizzare questo?Backup del database MySQL automaticamente su un server Windows

+1

È possibile utilizzare MySQLBackupFTP per eseguire il backup dei database MySQL e impostare una pianificazione in base alle proprie esigenze. Inoltre, questo strumento può inviare conferme e-mail in caso di successo o fallimento del lavoro. http://mysqlbackupftp.com/mysql-blog/how-to-backup-mysql-databases/ –

risposta

18

Vorrei utilizzare Scehduler/cron Task di Windows (a seconda del sistema) e mysqldump. Scorri verso il basso nel link, include alcune informazioni su come ottenere ciò che desideri.

+0

Sì, sembra che questo link abbia tutte le informazioni di cui ho bisogno, spero di poterlo mettere insieme. Grazie mille Martin.e Come si usa l'utilità di pianificazione di Windows in un server? – Coderwannabe

+0

L'Utilità di pianificazione su server Windows è praticamente la stessa della workstation. Se non ti senti a tuo agio, potresti ottenere risposte migliori su http://superuser.com/ o http://serverfault.com/. Se senti che la mia risposta ti ha aiutato a risolvere il tuo problema, sarebbe gentile da parte tua accettarlo. – martin

6

È possibile aggiungere uno di questi comandi per Windows task scheduler:

mysqldump –-user [username] –-password=[password] [database name] > [dump file] 

o in un modo compatto:

mysqldump –u[username] –p[password] [database name] > [dump file] 

o:

mysqldump -u[user] -p[password] --result-file="c:\<path>\backup.%DATE:~0,3%.sql" [database] 
16

Il modo migliore per fare questo sarebbe

mysqldump.exe --user=YourUserName --password=YourPassword --host=localhost --port=3306 --result-file="Path\dump.sql" --databases "DatabaseName1" "Database2" 


mysqldump.exe --user=root --password=root --host=localhost --port=3306 --result-file="c:\www\db\backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql" --default-character-set=utf8 --single-transaction=TRUE --databases "dbtest1" "dbtest2" 

Il modello backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql creerà un nome univoco (backup20131010.sql) ogni volta che verrà eseguito

Ora è solo bisogno di chiamare questo comando nel task scheduler. Questo è tutto. :)

+0

Grazie @Quarun formato data non è leggibile come può cambiare con il formato AAAA-MM_DD? –

+1

backup.% Date: ~ 10,4 %% - date: ~ 4,2% _date: ~ 7,2 %%. Sql @MohammadFaizanKhan spero che questo possa essere d'aiuto. –

+0

grazie! beh, lo avevo già trovato, ma grazie ancora –

2

databaseW.2016,06,29-22,31,48-15.sql

@echo off 
rem Backup Database (Daily,via Task Scheduler) 
rem databaseW 
set filename="c:\xampp\dbk\databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql" 
c:\xampp\mysql\bin\mysqldump.exe --user=root [email protected] --host=localhost --port=3306 --result-file=%filename% --default-character-set=utf8 --single-transaction=TRUE --databases "databaseW" 

creare il file il cui nome è in base alla data e l'ora, utilizzare %date% e %time%. Nota che le 2 variabili sono basati sulla localizzazione e la shell cmd versione

  • aprire le finestre CMD
  • ingresso echo %time% e echo %date% miniera è 22:11:16.80, 06/29/2016 Wed
  • substr la variabile attraverso %variable:~startpos,length% voglio il tempo delimitato da virgola, quindi il cmd diventa echo %time:~0,2%,%time:~3,2%,%time:~6,2%,%time:~9,2%
  • per ottenere un nome file come databaseW.2016,06,29-22,31,48-15.sql utilizzo set filename="databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql"
  • controllo del date e time in anticipo
  • utilizzare l'opzione invece di >--result-file; Secondo il Mysql Manuel, il set di caratteri del file salvato usando ">" è UTF-16, mentre il --result-file segue il --default-character-set
  • salvare su file BackpDay-databaseW.cmd
  • aggiungerlo a un nuovo compito Action e impostare un trigger (Windows Task Scheduler)