2013-11-22 79 views
2

如何找到文件系統中的MySQL數據庫引擎(數據結構,沒有MySQL命令可能)?如何查找MySQL數據庫的引擎在文件系統中是MyISAM還是InnoDB?

這將是很好,如果你能幫助我。

最好的問候, Jonniboy

+0

謝謝,夥計們。我想查看這些文件。你們中的一個人是否知道一個好的十六進制編輯器來查看這個文件爲十六進制代碼?它應該是linux終端的編輯器。我使用Debian 6.0。 – Jonniboy

+0

「od -x」應該始終在標準Linux機器上可用。 –

回答

4

MySQL的 「.frm的」(表)文件有一個file signature和規定的報頭格式。

此格式簡要地解釋8 bits: MySQL File formats and headers

  1. 前兩個字節總是FE,01
  2. 的第4字節是存儲類型:例如InnoDB的0C,MyISAM的09,MyIASM w /分區的14。 (見比爾Karwin的評論;這些都是從legacy_db_type枚舉中提取)

這應該是所有執行粗略檢查所需要的信息 - 無論是與file(這可能會或可能不會需要額外的規則),或通過手動用諸如xxd之類的東西進行檢查,例如

sh$ xxd -l 4 table.frm 

請記住,一個單一的數據庫可能包含的MyISAM InnoDB表。

+0

非常感謝!這是我的問題的解決方案。所以我可以很容易地檢查表是否使用MyISAM作爲引擎(當然這意味着它最有可能是InnoDB)。 :) – Jonniboy

+0

這將是很好,如果你可以編輯你的答案,因爲命令是錯誤的。該命令是xxd,而不是xdd。 ;) – Jonniboy

+0

哎呀!謝謝,我已經糾正了這個例子。 – user2864740

0

SHOW ENGINES是獲取更多信息的語法

http://dev.mysql.com/doc/refman/5.0/en/show-engines.html

+0

問題是我的系統上沒有任何mysql客戶端。這就是爲什麼我不能使用這些MySQL命令。 – Jonniboy

+0

你有PHP嗎?你有一個PHP連接字符串已經安裝,所以你可以連接? – WebsterDevelopine

+1

我沒有機會從外部MySQL客戶端連接到此服務器。我在/ var/lib/mysql /中有數據結構,並且想找出引擎。 – Jonniboy

相關問題