搜尋

首頁  >  問答  >  主體

解析MYD、MYI、FRM檔案的方法

<p>我在這個論壇和其他地方讀了幾篇帖子,但仍然無法讀取一些包含我想要導入到SQL Server的資料的MYD/MYI/FRM檔案。 </p> <ul> <li>我停止了客戶端位置的MySQL服務,並複製了所有檔案(與我們在SQL Server上的操作方式相同)。 </li> <li>我在我的Windows 10 PC上安裝了最新的MySQL ODBC連接器、MySQL引擎和MySQL Workbench。引擎正在運行,ODBC連接器已配置了使用者名稱和密碼。使用Workbench,我成功登入了。 </li> <li>我建立了一個名為MyTest的資料庫,它建立了一個C:\ProgramData\MySQL\MySQL Server 8.0\Data\mytest資料夾。 </li> <li>我停止了MySQL服務,並將MyData.MYD、MyData.MYI和MyData.FRM複製到mytest資料夾中。 </li> <li>我重新啟動了MySQL服務。 </li> </ul> <p>但是,如果我在Workbench或使用MySQL 8.0命令列客戶端執行"Select * from mytest.MyData"查詢,它會一直提示表mytest.MyData不存在。現在,我讀到可能適合運行CHOWN命令,但我不知道在Windows系統中語法是否會有所不同,以及這個命令是否可以直接從命令提示字元執行。 </p> <p>任何幫助將不勝感激。謝謝! </p>
P粉604848588P粉604848588467 天前677

全部回覆(1)我來回復

  • P粉015402013

    P粉0154020132023-08-26 09:51:58

    舊版的MySQL允許您在MyISAM表中這樣操作,但是MySQL 8.0引入了一個全新的「資料字典」實現,它是一個在內部維護的元資料庫,並且對InnoDB比MyISAM有偏好。因此,我相信隨意移動文件的方式不再像以前那樣有效。要將表從一個實例移動到另一個實例,您應該正確地執行匯出和匯入步驟。

    對於InnoDB,您可以使用可傳輸表空間。至少這樣您不必執行完整的資料匯入,但是需要比僅僅複製檔案多幾個步驟。

    P.S.:我多年來一直沒有使用MyISAM。我更喜歡我的資料庫支援ACID屬性,而MyISAM不支援任何ACID屬性。

    回覆
    0
  • 取消回覆