✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як створити резервну копію бази даних MySQL за допомогою PHP

43

Ви хочете взяти резервну копію бази даних у своїх PHP-проектах? Завжди рекомендується періодично робити резервні копії бази даних. Роблячи це, дані вашого сайту завжди будуть у безпеці у разі виникнення будь-якої проблеми з вашою базою даних. У цій статті ми покажемо вам, як періодично створювати резервні копії бази даних MySQL та зберігати їх на своєму сервері.

Ця стаття розроблена для проектів, які мають вбудований основний PHP, а не мають будь-яку CMS або Framework. CMS, як WordPress, має кілька доступних плагінів, таких як UpdraftPlus для резервного копіювання бази даних. На веб-сайтах Laravel користувач може використовувати такі ж цілі, як laravel-backup.

Команда Spatie розробила пакет, який корисний для резервного копіювання бази даних у основних PHP-проектах. Цей пакет забезпечує підтримку MySQL, PostgreSQL, SQLite та MongoDB. У цій статті ми обговоримо базу даних MySQL. З огляду на це, давайте подивимось, як цей пакет працює для резервного копіювання вашої бази даних.

Резервне копіювання бази даних MySQL за допомогою PHP

Перш ніж продовжувати далі, переконайтесь, що у вас є облікові дані бази даних і що Composer встановлений у вашій системі.

Далі відкрийте термінал у кореневому каталозі проекту та запустіть команду нижче, щоб встановити пакет.

composer require spatie/db-dumper

Після встановлення пакета створіть каталог db-backups(ви можете вказати будь-яке ім’я), де ви зможете зберігати свої резервні файли SQL. Також створіть файл backup-database.phpі додайте в нього код нижче.

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

Обов’язково замініть заповнювачі фактичними значеннями. У наведеному вище коді ми додали поточний час до файлу SQL, щоб зберегти різні імена файлів. Він скине вашу базу даних і збереже її у вказаному файлі SQL.

Пакет надає більше можливостей під час скидання бази даних. Наприклад, ви можете виключити певні таблиці із резервної копії, надавши масив виключення таблиць, як показано нижче.

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

Автоматично створювати резервні копії бази даних MySQL

Поки що у вас є файл PHP, який бере резервну копію бази даних. Наступне, що потрібно зробити, це автоматизувати процес резервного копіювання, щоб ви отримали резервні копії, не виконуючи сценарій вручну.

Коли ви розміщуєте веб-сайт на сервері, ваш хостинг-провайдер надає вам cPanel, де ви можете побачити основні та додаткові параметри управління веб-сайтом. Однією з функцій, яку вони надали, є "Cron Jobs". Завдання Cron дозволяють запускати певний скрипт (файл PHP) з певним інтервалом у фоновому режимі. Все, що вам потрібно зробити, це встановити інтервал і пройти шлях до каталогу PHP-файлу. Після цього ваш сервер запускає ваш сценарій у фоновому режимі через зазначені проміжки часу.

Щоб встановити Cron, увійдіть у свій cPanel і натисніть на "Cron Jobs", який ви можете знайти в розділі "Advanced".

Як створити резервну копію бази даних MySQL за допомогою PHP

На наступній сторінці в розділі «Додати нову роботу Cron» виберіть «Один раз на день» для спадного меню «Загальні налаштування». Це означає, що ваш скрипт запускатиметься раз на день. Користувач може встановити будь-який інтервал залежно від вимоги.

Як створити резервну копію бази даних MySQL за допомогою PHP

У розділі команди передайте шлях до файлу PHP наступним чином:

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

Налаштуйте шлях до сценарію відповідно до конфігурацій хостингу та надішліть його. Після цього ваш сервер починає виконувати сценарій щодня опівночі. І цей скрипт автоматично зберігатиме вашу базу даних MySQL у зазначеному каталозі (наприклад, db-резервні копії).

Ми сподіваємось, ви розумієте, як зробити резервну копію бази даних MySQL у PHP та автоматизувати процес за допомогою Cron. Ми хотіли б почути ваші думки чи пропозиції в розділі коментарів нижче.

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі