午安.
我的 Debian 9 伺服器遇到了導致作業系統無法存取的問題,我設法為我的專案提取所有原始資料庫檔案 (/var/lib/mysql),但不幸的是引擎類型設定為 InnoDB。
我是否有機會以某種方式恢復資料庫?謝謝。
答案1
如果您擁有完整的內容/var/lib/mysql
,那麼您可能應該嘗試/var/lib/mysql
用您擁有的內容完全替換當前內容。
根據您的 mariadb/mysql 選項,部分或全部 innodb 資料是全域的並儲存在/var/lib/mysql/ibdata1
、 和/var/lib/mysql/ib_logfile
檔案中。所以僅僅恢復/var/lib/mysql/databasename/table*
通常不足以恢復innodb資料。
如果您已經復原或開始使用目錄,則可以暫時將該目錄的目前內容移至另一個位置。或者甚至更好地在虛擬機器中臨時啟動一台新機器,或者可以在/var/lib/mysql
不中斷任何操作的情況下測試恢復整個目錄。
將舊資料放入後,/var/lib/mysql
您應該能夠啟動伺服器並有望提取您的資料。您可能需要使用繞過權限的選項來啟動 mariadb,具體取決於權限的鎖定程度。不過,我不會繼續使用它,而是建議您使用 mysqldump 或您最喜歡的工具來轉儲資料庫,然後將其重新匯入到生產資料庫中。
當您將內容移回並確保 mysql/mariadb 服務帳戶(通常是 mysql/mysql)擁有所有檔案並對所有檔案具有讀寫存取權。