Восстановление базы данных
Восстановить базу данных можно с помощью стандартного инструмента в панели управления, а также, при наличии у вас ранее созданной копии (дампа) — через phpMyAdmin или SSH.
Через ПУ
Для восстановления базы данных рекомендуем использовать следующий алгоритм:
- Создайте бэкап базы данных в ее текущем состоянии. После вы сможете его удалить, убедившись, что он больше не требуется.
- Удалите базу данных в разделе «Базы данных».
- Создайте точно такую же базу данных, с таким же именем и паролем.
- Перейдите в раздел «Файлы» — «Резервные копии» панели управления аккаунтом.
- Выберите вкладку «Базы данных».
- Выберите из списка доступную дату с сохраненной резервной копией.
- Нажмите «Восстановить» напротив нужной базы.
- Подтвердите восстановление, нажав на кнопку «ОК».
Через phpMyAdmin
- Откройте раздел «Базы данных» панели управления аккаунтом.
- Перейдите по ссылке «phpMyAdmin» рядом с именем базы данных, в которую следует загрузить дамп. При переходе понадобится ввести пароль базы данных.
- В открывшейся панели перейдите в раздел «Импорт», расположенный в верхнем меню.
- Нажмите на кнопку «Выберите файл» и укажите расположение созданного дампа.
- После нажатия кнопки «Вперед» таблицы будут загружены в базу данных.
Восстановление отдельных таблиц БД через phpMyAdmin
- Откройте раздел «Базы данных» панели управления аккаунтом.
- Перейдите по ссылке «phpMyAdmin» рядом с именем нужной базы данных.
- В открывшейся панели отметьте таблицы, которые необходимо восстановить.
- Перейдите в самый низ страницы и нажмите на выпадающее меню «С отмеченными».
- Выберите вариант «Восстановить таблицу».
При подключении по SSH
Подключитесь к серверу хостинга по SSH и используйте одну из команд ниже.
Между ключами (-u и -p) и следующими за ними параметрами 'база_данных' и 'пароль_базы_данных' не должно быть символа пробела.
- Для восстановления базы данных из дампа (при условии, что дамп не был сжат и имеет расширение .sql) в SSH-клиенте необходимо выполнить команду:
mysql -u'база_данных' база_данных -p'пароль_базы_данных' < имя_дампа.sql
- Или:
cat имя_дампа.sql | mysql -u'база_данных' база_данных -p'пароль_базы_данных'
- Для дампа с расширением .sql.zip необходимо выполнить команду:
unzip -p имя_дампа.sql.zip | mysql -u'база_данных' база_данных -p'пароль_базы_данных'
- Для дампа с расширением .sql.gz:
zcat имя_дампа.sql.gz | mysql -u'база_данных' база_данных -p'пароль_базы_данных'
- Для дампа с расширением .sql.bz2:
bzcat имя_дампа.sql.bz2 | mysql -u'база_данных' база_данных -p'пароль_базы_данных'
Возможные ошибки
Процесс прерывается из-за ограничений на хостинге
На тарифах виртуального хостинга Year+, Optimo+, Century+, Millennium+ установлены ограничения на использование процессами процессоров сервера, в связи с чем распаковка тяжелых архивов может завершаться принудительно. В таких случаях (за исключением дампов с расширением .sql.zip) вы можете использовать команду pv, например:
cat имя_дампа.sql | pv -L 2M | mysql -u'база_данных' база_данных -p'пароль_базы_данных'
ERROR #1273: Unknown collation
При импорте может наблюдаться подобная ошибка:
cat имя_дампа.sql | mysql -u'база_данных' база_данных -p'пароль_базы_данных'
ERROR 1273 (HY000) at line 29: Unknown collation: 'utf8mb4_unicode_520_ci'
В этом случае, оставив исходный файл без изменений, создайте копию дампа, заменив в ней строки, отвечающие за Collation и кодировку:
cat имя_дампа.sql | sed 's/utf8mb4_unicode_520_ci/utf8_unicode_ci/g' | sed 's/utf8mb4/utf8/g' > имя_дампа_new.sql
После чего осуществите импорт измененного дампа стандартным способом.
ERROR #1062: Duplicate entry
Может встречаться ошибка:
ERROR 1062 (23000) at line 53: Duplicate entry '1' for key 'PRIMARY'
В этом случае, оставив исходный файл без изменений, создайте копию дампа и внесите в него изменения командой:
cat имя_дампа.sql | sed 's/INSERT/REPLACE/' > имя_дампа_new.sql
После импортируйте измененный дамп, как обычно.