sql >> Databáze >  >> RDS >> Mysql

Jak zálohovat databázi MySQL v PHP?

I když můžete provádět zálohovací příkazy z PHP, nemají ve skutečnosti nic společného s PHP. Je to všechno o MySQL.

K zálohování databáze bych doporučil použít nástroj mysqldump. Dokumentaci naleznete zde:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .

Základní použití mysqldump je

mysqldump -u user_name -p name-of-database >file_to_write_to.sql

Zálohu pak můžete obnovit příkazem jako

mysql -u user_name -p <file_to_read_from.sql

Máte přístup ke cronu? Navrhoval bych vytvořit PHP skript, který spouští mysqldump jako úlohu cron. To by bylo něco jako

<?php

$filename='database_backup_'.date('G_a_m_d_y').'.sql';

$result=exec('mysqldump database_name --password=your_pass --user=root --single-transaction >/var/backups/'.$filename,$output);

if(empty($output)){/* no output is good */}
else {/* we have something to log the output here*/}

Pokud mysqldump není k dispozici, článek popisuje jinou metodu pomocí SELECT INTO OUTFILE a LOAD DATA INFILE příkazy. Jediné spojení s PHP je, že používáte PHP pro připojení k databázi a spouštění SQL příkazů. Můžete to provést také z příkazového řádku programu MySQL, MySQL monitor.

Je to docela jednoduché, zapisujete soubor SQL jedním příkazem a načítáte/spouštíte jej, když je čas na obnovu.

Dokumenty pro výběr do výstupního souboru můžete najít zde (stačí na stránce vyhledat výstupní soubor). LOAD DATA INFILE je v podstatě opakem tohoto. Viz zde pro dokumenty.



  1. Proaktivní monitorování MySQL (Developer Studio/Advisors Angle)

  2. Jak správně zavřít kurzor v Androidu

  3. Výběr procesoru pro SQL Server 2014 – část 2

  4. Vrátí GETUTCDATE() stejnou hodnotu, pokud se použije dvakrát ve stejném příkazu?