본문 바로가기
Dev/MySQL

[MySQL] ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

by 흰바다제비 2022. 9. 22.
728x90

Problem

기존에 기동되던 mysql 의 디렉토리를 살펴보다가 디렉토리의 소유권이 다음과 같이 설정되어 있는 것을 발견했다.

drwxr-xr-x. 15 root nobody    254  9월 22 14:51 mysql

 

이때는 nobody가 뭔지 몰랐음.. 이상하게 설정되어 있다고 생각해 다음과 같이 root가 소유권을 가지도록 변경했었다. 원래는 owner:group을 모두 mysql으로 설정하지만 owner가 root 이니 root 에 맞춰주었다.

drwxr-xr-x. 15 root root    254  9월 22 14:51 mysql

 

이후에 mysql에서 information_schema.schemata 테이블을 조회하려고 하니 다음과 같은 오류가 났다.

ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

 

information_schema 스키마 내의 다른 테이블 information_schema.tables를 조회해도 같은 오류가 난 것으로 보아, 어떤 테이블을 읽어도 동일한 오류가 나며 데이터를 읽어오지 못했을 듯하다.

 

원인을 찾아보니 디렉토리의 권한 문제로 생기는 오류라고 한다.

 


Solution

디렉토리 소유권을 mysql 계정이 가질 수 있도록 변경한다.

 

$ chown -R mysql:mysql /usr/local/mysql/

 

위 커맨드를 적용하면 다음과 같이 변경된다.

drwxr-xr-x. 15 mysql mysql  254  9월 22 14:51 mysql

 

chown으로 디렉토리 소유권만 변경해주면 mysql restart 없이도 바로 정상적으로 사용이 가능했다.

 

이번엔 문제가 생긴 원인을 정확히 알아 mysql을 설치한 디렉토리에만 해당 커맨드를 적용했지만,

mysql의 데이터 디렉토리(/data/mysql), 설치 디렉토리(/usr/local/mysql) 모두 소유권을 mysql 계정이 가지도록 하는게 일반적이다. 필요한 커맨드는 아래와 같다.

 

$ chown -R mysql:mysql /usr/local/mysql/
$ chown -R mysql:mysql /data/mysql/

 

 

 


참고

 

mysql error : ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

when i try to view the databases in mysql i get this error: ERROR 1018 (HY000): Can't read dir of '.' (errno: 13) And that stops my app from displaying... My django debugger says: (2002, "Can't

stackoverflow.com

 

728x90

댓글