복붙노트

[SQL] 오류 떨어 뜨리 데이터베이스 (수 없습니다 RMDIR '.test \'의 errno : 17)

SQL

오류 떨어 뜨리 데이터베이스 (수 없습니다 RMDIR '.test \'의 errno : 17)

기본적으로, 나는 "mysqladmin 데이터 -u 루트 -p 암호"명령을 사용하여 루트 암호를 생성하는 방법을 배웠습니다, 이것은 창을 통해 모든 편집기를 명령 이루어졌다. (. 정보 스키마, MySQL과 시험) 이제 다음 과정은 기본 데이터베이스를 사용하여 달성되었다 표시했다 "SHOW 데이터베이스;"

그러나이 책에 따르면, 우리는 중복 테스트 파일을 삭제했고, 다음과 같은 오류가 나옵니다 :

사용에 넣어 명령은 DROP의 DATABASE 시험했다;

나는 MYSQL과 phpMyAdmin을 사용하고 있습니다. 오류없이 파일을 삭제하는 방법에 어떤 도움?

해결법

  1. ==============================

    1.데이터베이스는 데이터 디렉토리 (보통 / var / lib 디렉토리 / mysql을) 아래 디렉토리에 의해 표현되고 디렉토리는 테이블 데이터의 저장을위한 것입니다.

    데이터베이스는 데이터 디렉토리 (보통 / var / lib 디렉토리 / mysql을) 아래 디렉토리에 의해 표현되고 디렉토리는 테이블 데이터의 저장을위한 것입니다.

    드롭 DATABASE 문은 모든 테이블 파일을 제거하고 데이터베이스를 나타내는 디렉토리를 제거합니다. 그것이 가능하지 디렉토리를 제거 할 수있게된다 그것은, 그러나, 비 테이블 파일을 제거하지 않습니다.

    이 디렉토리를 제거 할 수 없습니다 때 MySQL은 오류 메시지를 표시

    당신은 정말 데이터베이스 디렉토리 다음 디렉토리 자체에 남아있는 파일을 제거하여 데이터베이스를 수동으로 삭제할 수 있습니다.

  2. ==============================

    2.나는 맥에서 MySQL 5.5의 새 설치에이 같은 문제 다 퉜다. 내가 테스트 스키마를 제거하고, errno를 17 메시지를 받았습니다하려고 노력했다. errno는 17 곳이 안되는 파일이 존재하는지 나타내는 일부 POSIX의 운영 체제 기능에 의해 반환 된 오류입니다. 데이터 디렉토리에서, 나는 이상한 파일 ".empty"를 발견 :

    나는 맥에서 MySQL 5.5의 새 설치에이 같은 문제 다 퉜다. 내가 테스트 스키마를 제거하고, errno를 17 메시지를 받았습니다하려고 노력했다. errno는 17 곳이 안되는 파일이 존재하는지 나타내는 일부 POSIX의 운영 체제 기능에 의해 반환 된 오류입니다. 데이터 디렉토리에서, 나는 이상한 파일 ".empty"를 발견 :

    sh-3.2# ls -la data/test
    total 0
    drwxr-xr-x   3 _mysql  wheel  102 Apr 15 12:36 .
    drwxr-xr-x  11 _mysql  wheel  374 Apr 15 12:28 ..
    -rw-r--r--   1 _mysql  wheel    0 Mar 31 10:19 .empty
    

    나는 .empty 파일을 rm'd되면, 드롭 데이터베이스 명령은 성공했다.

    .empty 파일이 어디에서 왔는지 나는 모른다; 언급 한 바와 같이,이 새로운 MySQL을 설치했다. 아마 뭔가 설치 과정에서 잘못 갔다.

  3. ==============================

    3.MySQL의 설치를위한 DATADIR로 이동하여 수동으로 데이터베이스를 RM은. 그것은 될 수 있습니다

    MySQL의 설치를위한 DATADIR로 이동하여 수동으로 데이터베이스를 RM은. 그것은 될 수 있습니다

    /usr/local/var/mysql
    

    그때,

    rm -R <Your DB name>
    

    설치에 DATADIR 확인하려면,

    vim the mysql.server file and find it there.
    
  4. ==============================

    4.phpMyAdmin을 들어, \ mysql을 \ 데이터 XAMPP에 가서 단순히 데이터베이스 폴더를 삭제합니다. 나를 위해 일했다!

    phpMyAdmin을 들어, \ mysql을 \ 데이터 XAMPP에 가서 단순히 데이터베이스 폴더를 삭제합니다. 나를 위해 일했다!

  5. ==============================

    5.이 XAMPP 인 경우, 다음을 수행합니다 :

    이 XAMPP 인 경우, 다음을 수행합니다 :

    cd /opt/lampp/var/mysql;
    sudo su;
    rm -rf test;
    

    도움이 되었기를 바랍니다.

  6. ==============================

    6.난 그냥 WAMP과 함께 제공되는 phpMyAdmin에이 문제에 달렸다. 데이터베이스를 제거하고 오류가 멀리 갈 수 있도록합니다. \ WAMP \ 빈 \ mysql을 \ mysql5.5.24 \ 데이터 \ 문제의 데이터베이스 폴더를 삭제 : 나는 C 들어갔다.

    난 그냥 WAMP과 함께 제공되는 phpMyAdmin에이 문제에 달렸다. 데이터베이스를 제거하고 오류가 멀리 갈 수 있도록합니다. \ WAMP \ 빈 \ mysql을 \ mysql5.5.24 \ 데이터 \ 문제의 데이터베이스 폴더를 삭제 : 나는 C 들어갔다.

    그럼 난 phpMyAdmin을에서 페이지를 새로 고침, 데이터베이스가 사라졌다.

  7. ==============================

    7.다만 지금까지의 답변에 추가 : 윈도우 10에서, 데이터 파일은 여기에 보관됩니다 ...

    다만 지금까지의 답변에 추가 : 윈도우 10에서, 데이터 파일은 여기에 보관됩니다 ...

    C : \ 경우 ProgramData \ MySQL은 \ MySQL 서버 [m.n] \ 데이터

    데이터베이스에서 각 스키마에 대한 디렉토리가있을 것입니다. 그런 다음 다시 드롭 명령을 시도 수동으로, 당신은 드롭하려고하는 스키마 안으로 들어가있는 불필요한 파일을 삭제하는 것이 좋습니다.

    데이터베이스에 대해 모든 워크 벤치 변경이 위치에 저장 얻을 것이다. 예를 들어, 내 데이터베이스 중 하나에 리버스 엔지니어링 운동 다음이 위치에 .mwb 파일에 저장된 얻을 변경 사항을 저장이 오류를했다.

  8. ==============================

    8.당신은 두 가지를 확인해야합니다.

    당신은 두 가지를 확인해야합니다.

    1 데이터베이스 Foleder의 허가는 MySQL의 프로세스가이 같은 소유자가 있어야 삭제하고자하는 데이터베이스.

    2 디렉토리가 비어 고토에게 MySQL의 데이터 디렉토리를하고 그 디렉토리가 비어 확인해야합니다

    그 후 다시 MySQL의 CLI 및 실행 드롭 데이터베이스 명령을 연결합니다.

  9. ==============================

    9.이를 통해 가서 당신이 당신의 데이터베이스를 삭제할 수 있습니다 후 다음을 선택 DB에 캐시 파일을 해당 제거

    이를 통해 가서 당신이 당신의 데이터베이스를 삭제할 수 있습니다 후 다음을 선택 DB에 캐시 파일을 해당 제거

    먼저 MySQL의 데이터 디렉토리 당신의 선택 DB를 함유 찾기

    리눅스

    윈도우 1. 메모장의 MySQL의 구성 파일을 백업 :의 my.ini

    의 my.ini가 설치된있어 어디든지 될 것 MySQL의 프로그램 폴더에 위치합니다. 당신이 MySQL을 설치하지 않은 경우, 다음의 my.ini를 찾기 위해 윈도우 '검색'기능을 사용합니다. 수동 [드라이브]로 검색하여 검색 할 수 있습니다 : \ 프로그램 파일 \ MySQL은 \ MySQL 서버 5.5.

    참고 : "경우 ProgramData"폴더가 숨겨져있을 수 있습니다. 당신은 윈도우에 명시 적 경로 탐색을 입력 할 수 있습니다

  10. ==============================

    10.내 경우에는 내가 WAMP 서버를 사용하고 phpMyAdmin을 내 데이터베이스에서 모든 테이블을 볼 수 있지만하지 않았다 나는 C에서 디렉토리를 선택한 경우 : \ WAMP \ 빈 \ mysql을 내가 삭제 한 때이 employed.ibd을 발견 \ mysql5.6.12 \ 데이터 이 파일을 수동으로 나는 원활하게 아무 문제없이 phpMyAdmin을에서 데이터베이스를 제거 할 수 있었다.

    내 경우에는 내가 WAMP 서버를 사용하고 phpMyAdmin을 내 데이터베이스에서 모든 테이블을 볼 수 있지만하지 않았다 나는 C에서 디렉토리를 선택한 경우 : \ WAMP \ 빈 \ mysql을 내가 삭제 한 때이 employed.ibd을 발견 \ mysql5.6.12 \ 데이터 이 파일을 수동으로 나는 원활하게 아무 문제없이 phpMyAdmin을에서 데이터베이스를 제거 할 수 있었다.

  11. ==============================

    11.나는 내 경우 문제는 데이터 디렉토리에 잔류 덤프 파일이었다. 그 파일은 아마 내가 작업했던 백업 스크립트 테스트 중에 생성되었습니다. 내가 파일을 수동으로 삭제하면 나는 다음 데이터베이스를 제거 할 수있다.

    나는 내 경우 문제는 데이터 디렉토리에 잔류 덤프 파일이었다. 그 파일은 아마 내가 작업했던 백업 스크립트 테스트 중에 생성되었습니다. 내가 파일을 수동으로 삭제하면 나는 다음 데이터베이스를 제거 할 수있다.

  12. ==============================

    12.나는 RMDIR ..'- 오류가 데이터베이스를 삭제 할 수 없을 때 '와 같은 문제 (맥에서 MySQL 5.6)했다. 수없는 빈 데이터베이스 디렉토리를두면 없애. 솔루션에 대한 감사 @Framework 및 @Beel.

    나는 RMDIR ..'- 오류가 데이터베이스를 삭제 할 수 없을 때 '와 같은 문제 (맥에서 MySQL 5.6)했다. 수없는 빈 데이터베이스 디렉토리를두면 없애. 솔루션에 대한 감사 @Framework 및 @Beel.

    내가 처음에 터미널에서 db 디렉토리를 삭제 (/ 응용 프로그램 / XAMPP / xamppfiles은 / var / mysql을).

    더 dB 상품의 경우, 나는 또한 빈 테스트 파일을 삭제. 내 경우에는 파일이는 NotEmpty하지만 여전히 0을 포함 불렀다 :

    sudo ls -al test
    total 0
    drwxrwx---   3 _mysql  _mysql  102 Mar 26 16:50 .
    drwxrwxr-x  18 _mysql  _mysql  612 Apr  7 13:34 ..
    -rw-rw----   1 _mysql  _mysql    0 Jun 26  2013 NOTEMPTY
    

    chmod를 먼저하고

    sudo rm -rf test/NOTEMPTY
    

    그 후 데이터베이스를 삭제 아무 문제 없습니다

  13. ==============================

    13.내 경우 경로에 데이터 디렉토리로 이동하는 것은 "WAMP \ 빈 \ mysql을 \ mysql5.6.17 \ 데이터"여기 당신은 DB가 자동으로 처진 것 폴더에 모든 데이터베이스가 그냥이 데이터베이스를 삭제 폴더가 표시됩니다 :)

    내 경우 경로에 데이터 디렉토리로 이동하는 것은 "WAMP \ 빈 \ mysql을 \ mysql5.6.17 \ 데이터"여기 당신은 DB가 자동으로 처진 것 폴더에 모든 데이터베이스가 그냥이 데이터베이스를 삭제 폴더가 표시됩니다 :)

  14. ==============================

    14.당신은 sql 디렉토리에있는 데이터를 삭제할 수 있습니다.

    당신은 sql 디렉토리에있는 데이터를 삭제할 수 있습니다.

    나를 위해 내가 창 (10)에 AMPPS를 사용했다. 나는 AMPPs 설치 디렉토리에 갔다. 나를 위해 그것을했다 :

    D:\Program Files (x86)\Ampps\mysql\data
    

    내가 가지고 있기 때문에 내 보조 드라이브에 설치되어 있어야합니다.

    그런 다음 SQL 클라이언트를 새로 고침 당신은 사라 졌어요 볼 수 있습니다.

  15. ==============================

    15.나는이 문제에 실행, 나는 데이터베이스 디렉토리를 체크 아웃 할 때, 특급 파일 (IBD와 FRM은 파일이 제거 된)의 수 있었다. 파일 목록은 (소유자가 이미 파일에 RW 권한을 가지고 있기 때문에) 자신의 속성을보고

    나는이 문제에 실행, 나는 데이터베이스 디렉토리를 체크 아웃 할 때, 특급 파일 (IBD와 FRM은 파일이 제거 된)의 수 있었다. 파일 목록은 (소유자가 이미 파일에 RW 권한을 가지고 있기 때문에) 자신의 속성을보고

    lsattr *.exp
    -------------e-- foo.exp
    -------------e-- bar.exp
    

    남자 페이지는 말한다

           The  'e'  attribute  indicates that the file is using extents for mapping the blocks on disk.
           It may not be removed using chattr(1).
    

    당신은 실제로 -e에게이 파일을 위해 chattr 수 있지만, MySQL은 여전히 ​​당신이 데이터베이스를 제거하지 않습니다. RM으로 파일을 제거하지만, 데이터베이스가 완전히 삭제 될 수 있습니다.

  16. ==============================

    16.당신이 당신의 서버에 다른 서버에서 복사는 / var / lib 디렉토리 / mysql을 폴더 데이터베이스 폴더가있을 수 있기 때문에 발생합니다. 하지만 당신은이 파일을 복사하지 않은 :  은 / var / lib 디렉토리 / mysql을 / ib_buffer_pool  은 / var / lib 디렉토리 / mysql을 /을 ibdata1  은 / var / lib 디렉토리 / mysql을 / ib_logfile0  은 / var / lib 디렉토리 / mysql을 / ib_logfile1라는  은 / var / lib 디렉토리 / mysql을 / ibtmp1 새 DB 및 당신이 그들을 드롭 할 수있는 테이블을 만들 수 있지만, 당신은 당신이 다른 서버에서 복사하고 당신은 또한 다른 서버에서 복사하는 것과 같은 데이터베이스를 탐색 할 수없는 것을 데이터베이스를 삭제할 수 없습니다 그래서. 나는 또한 복사 그래서 파일 : ib_buffer_pool,을 ibdata1, ib_logfile0, ib_logfile1라는, ibtmp1 모든 것이 일 후.

    당신이 당신의 서버에 다른 서버에서 복사는 / var / lib 디렉토리 / mysql을 폴더 데이터베이스 폴더가있을 수 있기 때문에 발생합니다. 하지만 당신은이 파일을 복사하지 않은 :  은 / var / lib 디렉토리 / mysql을 / ib_buffer_pool  은 / var / lib 디렉토리 / mysql을 /을 ibdata1  은 / var / lib 디렉토리 / mysql을 / ib_logfile0  은 / var / lib 디렉토리 / mysql을 / ib_logfile1라는  은 / var / lib 디렉토리 / mysql을 / ibtmp1 새 DB 및 당신이 그들을 드롭 할 수있는 테이블을 만들 수 있지만, 당신은 당신이 다른 서버에서 복사하고 당신은 또한 다른 서버에서 복사하는 것과 같은 데이터베이스를 탐색 할 수없는 것을 데이터베이스를 삭제할 수 없습니다 그래서. 나는 또한 복사 그래서 파일 : ib_buffer_pool,을 ibdata1, ib_logfile0, ib_logfile1라는, ibtmp1 모든 것이 일 후.

  17. ==============================

    17.

    mysql -s -N -username -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'
    

    이 명령은 MySQL의 내부 INFORMATION_SCHEMA 데이터베이스에서만 값을 선택하고 표 출력과 열 머리글을 비활성화합니다.

    리눅스 [내 결과]에서 출력 :

    /var/lib/mysql
    

    또는

    mysql> select @@datadir;
    

    MYSQL CLI에

    그리고

    cd /var/lib/mysql && rm -rf test/NOTEMPTY
    

    당신의 결과에 따라 변경 경로

  18. from https://stackoverflow.com/questions/4584458/error-dropping-database-cant-rmdir-test-errno-17 by cc-by-sa and MIT license