Как сделать резервную копию БД MySQL и MariaDB в Windows
Резервную копию можно создать в графическом веб-интерфейсе в phpMyAdmin. Если вы хотите сделать бэкап сразу всех баз данных, то перейдите на главную страницу phpMyAdmin, оттуда перейдите во вкладку Экспорт. Далее всё достаточно просто.
Аналогично при бэкапе отдельных баз данных: перейдите на страницу интересующей БД, а далее во вкладку Экспорт.
phpMyAdmin — это прослойка на PHP между СУБД и пользователем, по этой причине скорость создания дампа очень большой базы займёт больше времени, чем если создавать его напрямую через специальную программу от MySQL или MariaDB.
Если вы решили сделать бэкап базы данных MySQL из командной строки в Windows, то для этого понадобиться утилита mysqldump.exe, она поставляется вместе с MySQL и расположена в каталоге с установленной MySQL/MariaDB в папке bin. Например, если СУБД установлена в C:\Server\bin\mysql-8.0, то программа mysqldump.exe будет находиться в папке C:\Server\bin\mysql-8.0\bin\.
Для её использования откройте командную строку и перетащите туда программу. Программу можно использовать с разнообразными опциями.
Внимание! Из-за особенностей PowerShell по работе с кодировками, в экспортируемых базах данных может быть испорчены все нелатинские символы. Подробности смотрите в статье «Решение проблем с кодировкой вывода в PowerShell и сторонних утилитах, запущенных в PowerShell».
Если вы хотите сделать резервную копию всех баз данных в один файл, то выполните:
mysqldump.exe -u root -p --all-databases --result-file=all-databases.sql
Кстати, файл нужно искать в той папке, которую вы видите в приглашении командной строки.
Для того, чтобы сделать резервную копию только одной базы данных (например, rsyslog):
mysqldump.exe -u root -p rsyslog --result-file=rsyslog.sql
Чтобы сделать резервную копию нескольких баз данных используйте опцию --databases, а после него через пробел перечислите желаемые для бэкапа базы данных:
mysqldump.exe -u root -p --databases rsyslog syslog --result-file=rsyslog_syslog.sql
Чтобы сделать резервную копию только одной таблицы (wp_posts) из базы данных (wordpress):
mysqldump.exe -u root -p wordpress wp_posts --result-file=wordpress_posts.sql
Для того, чтобы сделать резервную копию нескольких таблиц, перечислите их через пробел после названия БД:
mysqldump.exe -u root -p wordpress wp_posts wp_comments --result-file=wordpress_posts_comments.sql
Восстановление баз данных из резервной копии без phpMyAdmin в Windows
Для экспорта баз данных, phpMyAdmin работает довольно неплохо. Но с импортом возникло ряд проблем. Намного проще и в разы быстрее сделать импорт без phpMyAdmin и других помощников на PHP скриптах.
Для этого откройте командную строку Windows. Нажмите комбинацию WIN+x, затем выберите Windows PowerShell. Чтобы выйти из PowerShell и перейти в командную строку, выполните:
cmd
Затем смените текущую папку (укажите путь до подпапки bin внутри папки, куда установлена MySQL или MariaDB — у вас это может быть другой путь):
cd C:\Server\bin\mysql-8.0\bin\
И запустите команду вида:
mysql -uroot < C:\путь\до\файла\резервной_копии.sql
Например, моя резервная копия содержится в файле localhost.sql, который размещён в папке C:\Users\Alex\Downloads\, тогда команда выглядит так:
mysql -uroot < C:\Users\Alex\Downloads\localhost.sql