Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wykonać kopię zapasową bazy danych MySQL w PHP?

Chociaż możesz wykonywać polecenia tworzenia kopii zapasowych z PHP, tak naprawdę nie mają one nic wspólnego z PHP. Wszystko sprowadza się do MySQL.

Sugeruję użycie narzędzia mysqldump do wykonania kopii zapasowej bazy danych. Dokumentację można znaleźć tutaj:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .

Podstawowe użycie mysqldump to

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

Następnie możesz przywrócić kopię zapasową za pomocą polecenia takiego jak

mysql -u user_name -p <file_to_read_from.sql

Czy masz dostęp do crona? Sugerowałbym stworzenie skryptu PHP, który uruchamia mysqldump jako zadanie cron. To byłoby coś w stylu

<?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*/}

Jeśli mysqldump nie jest dostępny, artykuł opisuje inną metodę, używając SELECT INTO OUTFILE i LOAD DATA INFILE polecenia. Jedynym połączeniem z PHP jest to, że używasz PHP do łączenia się z bazą danych i wykonywania poleceń SQL. Możesz to również zrobić z poziomu programu MySQL wiersza poleceń, monitora MySQL.

To całkiem proste, piszesz plik SQL za pomocą jednego polecenia i ładujesz/wykonujesz go, gdy nadejdzie czas na przywrócenie.

Dokumentację do wyboru w pliku outfile można znaleźć tutaj (wystarczy wyszukać na stronie plik wyjściowy). LOAD DATA INFILE jest zasadniczo odwrotnością tego. Zobacz tutaj dla dokumentów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odmowa dostępu dla użytkownika „@”localhost” (przy użyciu hasła:NIE)

  2. codeIgniter zamiast tego użyj mysql_real_escape_string(). problem z połączeniem z bazą danych

  3. Język zapytań Neo4j - Cypher

  4. Dlaczego musimy zamknąć bazę danych MySQL po poleceniu zapytania?

  5. Jak sprawić, by MySQL używał INDEXu do zapytań o widok?