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/
참고
728x90
'Dev > MySQL' 카테고리의 다른 글
[MySQL] Waiting for table metadata lock (0) | 2022.10.17 |
---|---|
[MySQL] ERROR 2006 (HY000) : MySQL server has gone away (0) | 2022.10.07 |
[Database] Lock, Block, DeadLock (0) | 2022.09.15 |
[MySQL] Dynamic SQL을 사용하여 프로시저 생성 (0) | 2022.09.04 |
[MySQL] yum으로 MySQL 설치 (CentOS 7) (0) | 2022.09.03 |
댓글