나는 사용하고있다MySQL v5.1존재하다우분투기계.
my_db라는 데이터베이스가 있고 이를 삭제하고 싶기 때문에 다음 명령을 실행합니다.
mysql> drop database my_db;
ERROR 1010 (HY000): Error dropping database (can't rmdir './my_db/', errno: 17)
위와 같이 오류가 발생하는데... 왜 데이터베이스를 삭제할 수 없나요?
폴리스티렌모든 데이터베이스 관련 파일이 다음 위치에 있다는 것을 알고 있습니다./var/lib/mysql/my_db/
답변1
빠른 테스트를 통해 errno = 17
"파일이 존재함"이 표시됩니다(단지 관찰일 뿐이며 게시하기 전에 이를 알아낼 것으로 기대하지는 않습니다).
내가 찾은이 스레드/var/lib/mysql/my_db/
mysql 사이트에서 이는 mysql이 생성하지 않은(또는 생성하지 않았다고 생각하는) 파일이 있음을 나타냅니다 . (필요한 sudo
) 파일을 나열하고 그 안에 무엇이 있는지 확인하십시오. 거기에 있는 모든 콘텐츠를 임시 디렉터리로 이동하고(또는 정말로 필요하지 않다고 확신하는 경우 삭제하고) 다시 시도하세요.
답변2
소유자와 권한을 확인한 결과 /var/lib/mysql/my_db
mysql 데몬을 실행하는 사용자 계정에 폴더를 삭제할 수 있는 적절한 권한이 없다는 생각이 들었습니다.
루트로 종료 mysqld
하고 시작한 다음 테스트할 데이터베이스를 삭제해 볼 수 있습니다.
답변3
내가 아는 한 다음 사항을 확인해야 합니다.
- 데이터베이스와 관련되지 않은 불필요한 파일이 있는지 디렉터리를 확인하십시오. 데이터베이스 파일 만
DROP database
삭제한 후 디렉터리를 삭제하고, 데이터베이스 파일과 관련되지 않은 다른 파일이 있을 수 있으므로 삭제하지 않으므로 디렉터리를 삭제할 수 없습니다. - 그래도 작동하지 않으면 drop Database를 사용해 보십시오
PHPMYADMIN
. 대부분의 경우 작동합니다.
다음을 확인하세요: