MySQL 설치의 datadir을 변경했으며 모든 기본을 제외하고 올바르게 이동했습니다. 연결할 수 USE
있고 데이터베이스가 있습니다. SHOW TABLES
또한 모든 테이블을 올바르게 반환하며 각 테이블의 파일은 MySQL 데이터 디렉토리에 있습니다.
그러나 SELECT
테이블에서 무언가를 시도 하면 테이블이 존재하지 않는다는 오류 메시지가 나타납니다. 그러나 SHOW TABLES
진술을 통해 동일한 테이블을 표시 할 수 있었기 때문에 이것은 의미가 없습니다 .
내 생각에 SHOW TABLES
파일이 존재하지만 파일이 손상되었는지 여부는 확인하지 않습니다. 결과적으로 해당 파일을 나열 할 수는 있지만 액세스 할 수는 없습니다.
그럼에도 불구하고, 그것은 단지 추측 일뿐입니다. 나는 이것을 전에 본 적이 없다. 이제 테스트를 위해 데이터베이스를 다시 시작할 수 없지만 데이터베이스를 사용하는 다른 모든 응용 프로그램은 제대로 실행되고 있습니다. 그러나 그것은 단지 추측입니다. 나는 이것을 전에 본 적이 없습니다.
왜 이런 일이 일어나는지 아십니까?
예:
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database |
+-----------------------+
| TABLE_ONE |
| TABLE_TWO |
| TABLE_THREE |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist