是否可以從物理數據庫文件恢復MySQL數據庫。我有一個具有以下文件類型的目錄:從物理文件恢復MySQL數據庫
client.frm
client.MYD
client.MYI
,但約20多桌。
我通常使用mysqldump或類似的工具來獲得1個SQL文件一切都那麼有什麼辦法來處理這些類型的文件?
是否可以從物理數據庫文件恢復MySQL數據庫。我有一個具有以下文件類型的目錄:從物理文件恢復MySQL數據庫
client.frm
client.MYD
client.MYI
,但約20多桌。
我通常使用mysqldump或類似的工具來獲得1個SQL文件一切都那麼有什麼辦法來處理這些類型的文件?
一個MySQL MyISAM表是三個文件的組合:
你應該能夠在你的數據庫文件夾複製它們恢復(在Linux中,默認位置是/var/lib/mysql/
)
你應該這樣做,而服務器沒有運行。
是的!只需將它們添加到數據庫文件夾(取決於操作系統)並運行諸如「MySQL Fix Permissions」之類的命令。這重新存儲數據庫。也可以看到,文件上也設置了正確的權限。
我做到了,但我不認識的表。正如我在對先前答案的評論中所說的那樣。 – orezvani 2013-09-03 11:42:23
我曾經這些文件複製到數據庫中存儲文件夾爲其工作的MySQL數據庫,啓動數據庫,並等待它「修復」的文件,然後使用mysqldump提取它們。
With MySql 5.1(Win7)。要重新創建數據塊(InnoDbs)我把它換成以下迪爾斯的所有內容(的my.ini PARAMS):
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
innodb_data_home_dir="C:/MySQL Datafiles/"
從那以後,我開始MySQL服務和一切工作正常。
如果要恢復的文件夾,不要忘記將文件執行chown到MySQL:MySQL的chown -R mysql:mysql /var/lib/mysql-data
否則試圖刪除數據庫或添加新列等時,你會得到錯誤..
和重新啓動MySQL
service mysql restart
我有同樣的問題,但沒有成功地恢復基於上述說明的數據庫。
我只接到了我的Ubuntu OS恢復mysql數據庫文件夾。我的問題是如何恢復我的數據庫與那些不可讀的MySQL數據文件夾。現在我轉回到開發環境的win7操作系統。
*注意 我有一個現有的數據庫服務器在Win7運行,我只需要幾個數據庫文件從恢復的文件檢索。要成功從Ubuntu操作系統恢復數據庫文件,我需要在我的win7操作系統中從Ubuntu操作系統中安裝全新安裝的mysql數據庫服務器,以恢復該舊數據庫服務器中的所有內容。
再拍新的MySQL數據庫服務器相同的版本從 恢復的文件。
停止MySQL服務器
複製恢復的文件夾,並在 粘貼(C:\ ProgramData \ MySQL的\ MySQL服務器5.5 \數據)的mysql數據庫是存儲 。
複製ibdata1文件位於linux mysql安裝文件夾中,並將其粘貼到(C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ data)中( )。剛剛超過 對現有或替換前進行備份。
啓動mysql服務器並檢查是否已成功恢復 數據庫文件。
要在我目前使用的mysql服務器中使用恢復的數據庫 只需導出恢復的數據庫並將其導入我現有的mysql 服務器。
希望這些將有助於,因爲我沒有找到解決我的問題。
從@Vicent的答案,我已經恢復如下MySQL數據庫:
步驟1.關閉MySQL服務器
第二步複製數據庫,數據庫文件夾(在Linux中,默認位置是的/ var/lib中/ MySQL的)。保持數據庫名稱相同,並在mysql模式下保持數據庫名稱相同。
sudo cp -rf /mnt/ubuntu_426/var/lib/mysql/database1 /var/lib/mysql/
第3步:改變自己和改變模式的文件夾:
sudo chown -R mysql:mysql /var/lib/mysql/database1
sudo chmod -R 660 /var/lib/mysql/database1
sudo chown mysql:mysql /var/lib/mysql/database1
sudo chmod 700 /var/lib/mysql/database1
第4步:複製ibdata1中在你的數據庫文件夾
sudo cp /mnt/ubuntu_426/var/lib/mysql/ibdata1 /var/lib/mysql/
sudo chown mysql:mysql /var/lib/mysql/ibdata1
第5步:複製ib_logfile0和ib_logfile1文件數據庫文件夾。
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile0 /var/lib/mysql/
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile1 /var/lib/mysql/
記得改變那些文件的自己和改變根:
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile0
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile1
或
sudo chown -R mysql.mysql /var/lib/mysql
步驟6(可選):我的網站有配置存儲在特定位置的文件,那麼我將它們完全複製到相應的位置。
第7步:啓動您的Mysql服務器。一切都回來,享受它。
也就是說。
看多:https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
這僅適用於MyISAM表。 InnoDB將其表和索引存儲在單個表空間*中,缺省情況下由3個文件ibdata1,ib_logfile0和ib_logfile1組成。爲了恢復數據庫,你還需要這些文件。 *每個表的表空間都是可能的,但不是默認的 – 2009-08-21 18:18:58
他說他有.frm .myi和.myd文件。然後我認爲它是MyISAM表格。 – Vincent 2009-08-24 16:31:22
right-point taken :) – 2009-08-27 07:36:24