<p>이 포럼과 다른 곳에서 여러 게시물을 읽었지만 여전히 SQL Server로 가져오려는 데이터가 포함된 일부 MYD/MYI/FRM 파일을 읽을 수 없습니다. </p>
<li>클라이언트 위치에서 MySQL 서비스를 중지하고 모든 파일을 복사했습니다(SQL Server에서 했던 것과 같은 방식). </li>
<li>Windows 10 PC에 최신 MySQL ODBC 커넥터, MySQL 엔진 및 MySQL Workbench를 설치했습니다. 엔진이 실행 중이고 ODBC 커넥터가 사용자 이름과 비밀번호로 구성되었습니다. Workbench를 사용하여 성공적으로 로그인했습니다. </li>
<li>C:ProgramDataMySQLMySQL Server 8.0Datamytest 폴더를 생성한 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>
이전 버전의 MySQL에서는 MyISAM 테이블에서 이 작업을 수행할 수 있었지만 MySQL 8.0에서는 완전히 새로운 "데이터 사전" 구현을 도입했습니다. 이는 내부적으로 유지 관리되는 메타데이터 데이터베이스이며 MyISAM보다 InnoDB를 선호합니다. 따라서 파일을 이동하는 캐주얼한 방식은 더 이상 예전처럼 잘 작동하지 않는다고 생각합니다. 한 인스턴스에서 다른 인스턴스로 테이블을 이동하려면 내보내기 및 가져오기 단계를 올바르게 수행해야 합니다.
InnoDB의 경우 전송 가능한 테이블스페이스를 사용할 수 있습니다. 최소한 이 방법을 사용하면 전체 데이터 가져오기를 수행할 필요는 없지만 파일을 복사하는 것보다 몇 가지 단계가 더 필요합니다.
P.S.: 저는 몇 년 동안 MyISAM을 사용하지 않았습니다. 나는 내 데이터베이스가 ACID 속성을 지원하는 것을 선호하는데 MyISAM은 ACID 속성을 지원하지 않습니다.