Mysql

我可以從數據文件中找出 MySQL 的版本嗎?

  • December 20, 2021

我這裡發生了一個非常奇怪的情況。我有一個執行 ubuntu 8.10 和 MySQL 伺服器的 linux 機器,上面安裝了 Wordpress,為我們公司託管了一個內部部落格。執行它的機器已經壞掉了,但我能夠將驅動器放入一個機箱中並獲得對文件的訪問權限並恢復 MySQL 數據文件夾。我們主要是一家 Windows 公司,我的 linux 經驗非常有限。在這台機器崩潰之前,我們正在嘗試將這個部落格移至執行 PHP for IIS 的 Windows 虛擬機;我們在 MySQL 5.1 上啟動並執行了 Wordpress 數據庫的舊副本。我目前正在嘗試從 linux MySQL 數據文件夾中檢索最新數據並將其導入目前數據庫,但我遇到了問題。

到目前為止的問題:1)我不知道 linux 機器上安裝了哪個版本的 MySQL 2)我在 linux MySQL 數據文件夾上看到了 ib_logfile0、ib_logfile1 和 ibdata1,但不確定它是否真正執行 InnoDB我在 wordpress 文件夾中也有 .frm、.myd 和 .myi 文件

如果我能弄清楚 linux box MySQL 的版本,我或許可以創建一個虛擬機來執行 linux 和 MySQL,這樣我就可以複製數據文件夾,然後進行導出轉儲;除非其他人知道將數據導入我目前數據庫的更簡單方法。

對此問題的任何幫助或指導將不勝感激。

謝謝,內森

我能想到的最乾淨的方法是只檢查一張表:mysql.user

如果您完全可以登錄到 mysql,請執行以下查詢:

SELECT COUNT(1) column_count FROM information_schema.columns
WHERE table_schema='mysql' AND table_name='user';

以下是您應該得到的答案:

  • 如果你得到 43,MySQL 5.6
  • 如果你得到 42,MySQL 5.5
  • 如果你得到 39,MySQL 5.1
  • 如果你得到 37,MySQL 5.0

如果不能登錄mysql,複製表

  • user.frm
  • user.MYD
  • user.MYI

到另一台執行mysql的機器。

在另一台機器上執行CREATE DATABASE junk;

轉到其他 mysql 伺服器中的數據目錄

將目錄更改為垃圾

將使用者表的三個文件複製到其中。如果對方機器是Linux機器,記得執行chown mysql:mysql user.*

在另一台機器上登錄 MySQL 並執行

DESC junk.user;

它會告訴我之前提到的相同數字。

但是,如果你得到 28,那就是 MySQL 4.1。如果你得到 17,那就是 MySQL 4.0。玩得開心。

試一試 !!!

除了一個例外,MySQL 的數據庫文件在主機之間是二進制兼容的,甚至在 Linux 和 Windows 之間也是如此,因此您可以將它們複製過來。如果您碰巧有浮點數據(聲明doublefloat)並嘗試在具有不同浮點表示的電腦之間導出,則會出現異常。如果您不確定(或不知道我在說什麼),請嘗試一下。

一個額外的小步驟是在 Windows 中將數據庫和表名僅轉換為小寫,但您可以通過將以下內容添加到配置文件(my.cnfmy.ini)中來做到這一點:

[mysqld]
lower_case_table_names=1

您可能希望檢查您的數據是否被嚴重損壞。請參閱手冊以獲取幫助。

引用自:https://dba.stackexchange.com/questions/41338