我在這個論壇和其他地方讀了幾篇帖子,但仍然無法讀取一些包含我想要導入到SQL Server的資料的MYD/MYI/FRM檔案。
- 我停止了客戶端位置的MySQL服務,並複製了所有檔案(與我們在SQL Server上的操作方式相同)。
- 我在我的Windows 10 PC上安裝了最新的MySQL ODBC連接器、MySQL引擎和MySQL Workbench。引擎正在運行,ODBC連接器已配置了使用者名稱和密碼。使用Workbench,我成功登入了。
- 我建立了一個名為MyTest的資料庫,它建立了一個C:\ProgramData\MySQL\MySQL Server 8.0\Data\mytest資料夾。
- 我停止了MySQL服務,並將MyData.MYD、MyData.MYI和MyData.FRM複製到mytest資料夾中。
- 我重新啟動了MySQL服務。
但是,如果我在Workbench或使用MySQL 8.0命令列客戶端執行"Select * from mytest.MyData"查詢,它會一直提示表mytest.MyData不存在。現在,我讀到可能適合運行CHOWN命令,但我不知道在Windows系統中語法是否會有所不同,以及這個命令是否可以直接從命令提示字元執行。
任何幫助將不勝感激。謝謝!
舊版的MySQL允許您在MyISAM表中這樣操作,但是MySQL 8.0引入了一個全新的「資料字典」實現,它是一個在內部維護的元資料庫,並且對InnoDB比MyISAM有偏好。因此,我相信隨意移動文件的方式不再像以前那樣有效。要將表從一個實例移動到另一個實例,您應該正確地執行匯出和匯入步驟。
對於InnoDB,您可以使用可傳輸表空間。至少這樣您不必執行完整的資料匯入,但是需要比僅僅複製檔案多幾個步驟。
P.S.:我多年來一直沒有使用MyISAM。我更喜歡我的資料庫支援ACID屬性,而MyISAM不支援任何ACID屬性。