Тематические термины: MySQL, MariaDB, phpMyAdmin
В данном примере показано восстановление из заранее сделанного dump-файла (с помощью mysqldump). Если нужна инструкция по созданию резервной копии, читайте Как сделать дамп базы MySQL.
Подключаемся к командной оболочке mysql:
mysql -uroot -p
* данной командой мы подключимся к СУБД под пользователем root. Опция -p потребует ввода пароля.
Для восстановления базы сначала необходимо ее создать:
> CREATE DATABASE db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
При необходимости, также создаем пользователя, который будет иметь доступ к базе:
> GRANT ALL PRIVILEGES ON db.* TO [email protected] IDENTIFIED BY ‘password’ WITH GRANT OPTION;
Подробнее про создание баз читайте на странице Создание и удаление баз в MySQL/MariaDB.
Команда выполняется из UNIX-shell:
mysql -v -u root -p db < /tmp/dump.sql
* где root — учетная запись, от которой идет подключение к серверу баз данных; db — имя базы, которую необходимо восстановить; /tmp/recovery.sql — файл дампа, из которого восстанавливаем базу.* опция -v позволит показать на экране ход процесса, однако, она очень сильно снижает скорость восстановления — не рекомендуется ее использовать для больших баз.
Если при создании дампа использовалась gzip, сначала распаковываем архив:
gunzip /tmp/dump.sql.gz
Если у нас много файлов, которые нужно импортировать, можно выполнить следующую команду:
cat /tmp/*.sql | mysql -u root -p db
* в данном случае мы прочитаем из каталога /tmp все файлы, заканчивающиеся на .sql и импортируем их содержимое в базу.
Выбираем базу, которую нужно восстановить. Переходим на вкладку Импорт – кликаем по кнопке Выберите файл:
Выбираем файл с резервной копией.
Нажимаем по OK и ждем восстановления данных.
Данный способ восстановления лучше не применять, так как он может приводить к потере данных. Он может помочь, если нужно срочно восставновить дамп, а он выкидывает различные ошибки, с которыми не удалось разобраться быстро.
Суть сводится к простому добавлению ключа –force или -f:
mysql -v -u root -p -f db < /tmp/dump.sql
Во время восстановления базы может выскочить ошибка:
at line xxx: MySQL server has gone away.
Как правило, ее причина в низком значении параметра max_allowed_packet, который отвечает за ограничение выполнения команд из файла. Посмотреть текущее значение можно командой в mysql:
> SHOW VARIABLES LIKE ‘max_allowed_packet’;
Чтобы увеличить значение параметра, открываем конфигурационный файл my.cnf:
vi /etc/my.cnf
* в некоторых версиях СУБД конфиг может находится по пути /etc/my.cnf.d/server.cnf.
В разделе [mysqld] редактируем или добавляем:
[mysqld]…max_allowed_packet = 512M
* значение для данного параметра не обязательно должно быть таким большим.
Перезапускаем mysql:
systemctl restart mariadb || systemctl restart mysql
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies