Backup

從備份恢復後 MySQL 數據消失

  • February 16, 2010

我最近不得不從一個託管服務提供商轉移到另一個託管服務提供商(如果您在英國,請不要將 Easyspace 用於您的 VPS!)因為我以前的主機在沒有警告的情況下轉儲了我的伺服器。

幸運的是,我進行了遠端備份,並且能夠順利恢復幾乎所有的客戶端站點和數據庫。除了這個。

由於我恢復了我的數據庫,其中一些表現出非常不尋常的行為,特別是在多行中清空數據行或某些欄位。

有沒有人經歷過這種情況/知道原因是什麼?它似乎只在更新記錄時發生。

我的備份包括

mysqldump --all-databases

我最初使用 phpMyAdmin 恢復到我的新 MySQL 伺服器。然後我再次嘗試,從命令行直接導入 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 之間的差異通常會導致您在報告時失去數據。

引用自:https://serverfault.com/questions/103356