Backup
從備份恢復後 MySQL 數據消失
我最近不得不從一個託管服務提供商轉移到另一個託管服務提供商(如果您在英國,請不要將 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 之間的差異通常會導致您在報告時失去數據。