Назад | Перейти на главную страницу

Данные MySQL исчезают после восстановления из резервной копии

Недавно мне пришлось перейти от одного хостинг-провайдера к другому (если вы находитесь в Великобритании, не используйте Easyspace для своего VPS!), Так как мой предыдущий хост без предупреждения сбросил мой сервер.

К счастью, у меня были удаленные резервные копии, и я смог без проблем восстановить почти все мои клиентские сайты и базы данных. Кроме этого.

Поскольку я восстановил свои базы данных, некоторые из них демонстрируют очень необычное поведение, в частности, исключают строки данных или определенные поля в нескольких строках.

Кто-нибудь испытывал это раньше / знает, в чем причина? Это происходит только при обновлении записей.

Мои резервные копии состояли из

mysqldump --all-databases

Сначала я восстановил свой новый сервер MySQL с помощью phpMyAdmin. Затем я попробовал еще раз, импортировав прямо в MySQL из командной строки, и произошло то же самое.

Оказывается, проблема в том, что я использую строку mysql_real_escape. Мой сценарий подбрасывает мне это:

Warning: [2] mysql_real_escape_string(): "Access denied for user 'www-data'@'localhost' (using password: NO)"

Я использую mysqli. Итак, функция / метод должны быть

mysqli_real_escape_string($link, $str);
// OR
mysqli::escape_string($str);

Кажется действительно глупым, но он работал на моем другом сервере, хотя вообще не было настроек по умолчанию для использования mysql ... просто казалось, что он справился с этим. Так что я предполагаю, что это были шонкие разрешения и что мой новый сервер показывает правильное поведение.

Задача решена.

Были ли базы данных, в которые вы импортируете, были созданы с другим набором символов по умолчанию для базы данных экспорта / исходных баз данных? Различия между iso-8859-1 и UTF-8 часто приводят к потере данных при составлении отчета.