✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak wykonać kopię zapasową bazy danych MySQL za pomocą PHP

338

Czy chcesz wykonać kopię zapasową bazy danych w swoich projektach PHP? Zawsze zaleca się okresowe tworzenie kopii zapasowej bazy danych. Dzięki temu dane Twojej witryny będą zawsze bezpieczne w przypadku wystąpienia jakichkolwiek problemów z bazą danych. W tym artykule pokażemy, jak okresowo wykonać kopię zapasową bazy danych MySQL i przechowywać ją na swoim serwerze.

Ten artykuł jest napisany dla projektów, które są wbudowane w PHP, a nie z jakimkolwiek CMS lub Frameworkiem. CMS, taki jak WordPress, ma kilka dostępnych wtyczek, takich jak UpdraftPlus, do tworzenia kopii zapasowych bazy danych. Na stronach Laravel użytkownik może używać pakietów takich jak laravel-backup do tych samych celów.

Zespół Spatie opracował pakiet, który jest przydatny do wykonywania kopii zapasowych baz danych w podstawowych projektach PHP. Ten pakiet zapewnia obsługę MySQL, PostgreSQL, SQLite i MongoDB. Bazę danych MySQL omówimy w tym artykule. Biorąc to pod uwagę, przyjrzyjmy się, jak ten pakiet działa podczas tworzenia kopii zapasowej bazy danych.

Kopia zapasowa bazy danych MySQL przy użyciu PHP

Przed kontynuowaniem upewnij się, że masz poświadczenia bazy danych, a Composer jest zainstalowany w systemie.

Następnie otwórz terminal w katalogu głównym projektu i uruchom poniższe polecenie, aby zainstalować pakiet.

composer require spatie/db-dumper

Po zainstalowaniu pakietu utwórz katalog db-backups(możesz nadać dowolną nazwę), w którym możesz przechowywać pliki kopii zapasowej SQL. Utwórz również plik backup-database.phpi dodaj w nim poniższy kod.

<?php
require_once "vendor/autoload.php";
 
SpatieDbDumperDatabasesMySql::create()
    ->setDbName('DB_NAME')
    ->setUserName('DB_USER_NAME')
    ->setPassword('DB_PASSWORD')
    ->dumpToFile('db-backups/'.time().'_dump.sql');

Pamiętaj, aby zastąpić symbole zastępcze rzeczywistymi wartościami. W powyższym kodzie dodaliśmy aktualny czas do pliku SQL, aby zachować różne nazwy plików. Zrzuci twoją bazę danych i zapisze ją w podanym pliku SQL.

Pakiet daje więcej opcji podczas zrzucania bazy danych. Na przykład możesz wykluczyć określone tabele z kopii zapasowej, podając tablicę wykluczania tabel, jak poniżej.

<?php
SpatieDbDumperDatabasesMySql::create()
    ->setDbName('DB_NAME')
    ->setUserName('DB_USER_NAME')
    ->setPassword('DB_PASSWORD')
    ->excludeTables(['table1', 'table2', 'table3'])
    ->dumpToFile('db-backups/'.time().'_dump.sql');

Automatycznie twórz kopie zapasowe bazy danych MySQL

Do tej pory masz plik PHP, który pobiera kopię zapasową bazy danych. Następną rzeczą, którą należy zrobić, to zautomatyzować proces tworzenia kopii zapasowej, aby uzyskać kopie zapasowe bez ręcznego wykonywania skryptu.

Kiedy hostujesz witrynę na serwerze, Twój dostawca hostingu udostępnia cPanel, w którym możesz zobaczyć podstawowe i zaawansowane opcje zarządzania witryną. Jedną z oferowanych przez nich funkcji jest „Cron Jobs". Zadania Cron umożliwiają uruchamianie w tle określonego skryptu (pliku PHP) w określonych odstępach czasu. Wszystko, co musisz zrobić, to ustawić interwał i przekazać ścieżkę katalogu pliku PHP. Następnie serwer uruchamia Twój skrypt w tle w określonych odstępach czasu.

Aby ustawić Crona, zaloguj się do swojego cPanel i kliknij „Zadania Cron”, które możesz znaleźć w sekcji „Zaawansowane”.

Jak wykonać kopię zapasową bazy danych MySQL za pomocą PHP

Na następnej stronie w sekcji „Dodaj nowe zadanie Cron” wybierz „Raz dziennie” dla menu „Wspólne ustawienia”. Oznacza to, że Twój skrypt będzie uruchamiany raz dziennie. Użytkownik może ustawić dowolny interwał w zależności od wymagań.

Jak wykonać kopię zapasową bazy danych MySQL za pomocą PHP

W sekcji poleceń podaj ścieżkę do pliku PHP w następujący sposób:

php /home/username/public_html/backup-database.php

Dostosuj ścieżkę skryptu zgodnie z konfiguracją hostingu i prześlij ją. Następnie Twój serwer zaczyna codziennie o północy wykonywać skrypt. A ten skrypt automatycznie zapisze twoją bazę danych MySQL w określonym katalogu (np. db-backups).

Mamy nadzieję, że rozumiesz, jak wykonać kopię zapasową bazy danych MySQL w PHP i zautomatyzować proces za pomocą Crona. Chcielibyśmy poznać Twoje przemyślenia lub sugestie w sekcji komentarzy poniżej.

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów