將MySQL的庫目錄複製到data中,恢復庫中數據

前言

前段時間要重啓一下mysqld服務,結果不知道爲何mysqld關掉後就再也起不來了😭mysql

嘗試屢次後無果,準備重裝MySQL。不過在卸載MySQL前把datadir目錄複製了一份,準備在重裝後用datadir目錄恢復數據sql

下面開始恢復數據code

恢復數據

注:如下步驟中若是你遇到了問題,能夠嘗試下文中的下一個標題:遇到的問題和問題的解決方案中提供的解決方案class

  1. 卸載前複製一份datadir,命名爲data_old(便於區分)
  2. 重裝並能成功啓動MySQL後,先關閉mysqld,再將datadir(這是新安裝的MySQL的數據目錄)複製一份,命名爲data_copy
  3. 假設datadir指定的目錄爲data。刪除data中的ibdata1ib_logfile0ib_logfile1。將data_old中的ibdata1複製到data
  4. data_old中你但願恢復的庫的目錄都複製到data
  5. 重啓mysqld服務
  6. 嘗試查詢庫和庫中的表數據,數據存在且可訪問表示數據恢復成功、

遇到的問題和問題的解決方案

  • 在步驟5中出現打開庫後提示表不存在。解決方案:重啓mysqldfile

  • 在步驟5中出現打開表時提示權限問題,打不開表。解決方案:查看data目錄的權限用戶和你要恢復的庫目錄的權限用戶是否一致。解決方案:修改庫目錄的權限用戶權限

    我當時舊庫目錄的權限用戶是root,而data目錄的權限用戶是mysql,結果打開表時出現權限問題。嘗試chown -R mysql:mysql <databaseDir>命名

爲何不直接用舊data目錄取代新data目錄

我不知道大家能不能,反正我不能😂。嘗試將整個舊的data目錄覆蓋新的data,結果mysqld根本運行不起來。因此我只能一個一個把庫目錄從舊data複製到新data數據

相關文章
相關標籤/搜索