Methoden zum Parsen von MYD-, MYI- und FRM-Dateien
P粉604848588
2023-08-25 16:14:30
<p>Ich habe mehrere Beiträge in diesem Forum und anderswo gelesen, kann aber immer noch einige MYD/MYI/FRM-Dateien nicht lesen, die Daten enthalten, die ich in SQL Server importieren möchte. </p>
<ul>
<li>Ich habe den MySQL-Dienst am Client-Standort gestoppt und alle Dateien kopiert (auf die gleiche Weise, wie wir es auf SQL Server gemacht haben). </li>
<li>Ich habe den neuesten MySQL ODBC Connector, MySQL Engine und MySQL Workbench auf meinem Windows 10-PC installiert. Die Engine läuft und der ODBC-Connector wurde mit Benutzername und Passwort konfiguriert. Mit Workbench habe ich mich erfolgreich angemeldet. </li>
<li>Ich habe eine Datenbank namens MyTest erstellt, die einen C:ProgramDataMySQLMySQL Server 8.0Datamytest-Ordner erstellt hat. </li>
<li>Ich habe den MySQL-Dienst gestoppt und MyData.MYD, MyData.MYI und MyData.FRM in den mytest-Ordner kopiert. </li>
<li>Ich habe den MySQL-Dienst neu gestartet. </li>
</ul>
<p>Wenn ich jedoch die Abfrage „Select * from mytest.MyData“ in Workbench ausführe oder den MySQL 8.0-Befehlszeilenclient verwende, wird immer wieder die Meldung angezeigt, dass die Tabelle mytest.MyData nicht existiert. Nun habe ich gelesen, dass es angebracht sein könnte, den Befehl CHOWN auszuführen, aber ich weiß nicht, ob die Syntax in einem Windows-System anders wäre und ob dieser Befehl direkt über die Eingabeaufforderung ausgeführt werden könnte. </p>
<p>Jede Hilfe wäre sehr dankbar. Danke! </p>
旧版本的MySQL允许您在MyISAM表中这样操作,但是MySQL 8.0引入了一个全新的“数据字典”实现,它是一个在内部维护的元数据库,并且对InnoDB比MyISAM有偏好。因此,我相信随意移动文件的方式不再像以前那样有效。要将表从一个实例移动到另一个实例,您应该正确地执行导出和导入步骤。
对于InnoDB,您可以使用可传输表空间。至少这样您不必执行完整的数据导入,但是需要比仅仅复制文件多几个步骤。
P.S.:我多年来一直没有使用MyISAM。我更喜欢我的数据库支持ACID属性,而MyISAM不支持任何ACID属性。