티스토리 뷰

갑자기 DB 접속이 안돼요..

DB 접속이 갑자기 안되서, MySQL을 띄워둔 AWS EC2에 접속해보니 MySQL Docker가 내려가 있었다.

 

원인은 알 수가 없어서 일단 Docker를 재시작했다.

 

그런데 기존에 만들어놓은 테이블이 날아가서 다시 만들어주려고 하니까 아래와 같은 에러가 발생했다.

 

분명 루트로 접속했는데, 테이블 생성부터 아무것도 안된다. 그냥 권한이 없다는 에러메시지만 반복된다.

 

이럴 때는 권한을 다시 지정해주면 된다.

 

일단 사용자 확인.

mysql>  select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

여기서 root 사용자가 두 개 있는데, host가 다르다.

 

두 루트 사용자의 주요 차이점은 '%' host는 MySQL 서버에 대한 원격 액세스를 허용하고, 'localhost'는 동일한 시스템에서만 액세스를 허용한다는 것이다.

 

내가 사용하고 있는건 EC2 밖에서의 DB 접근이기 때문에 원격 엑세스이다.

 

때문에 '%' host를 사용하는데, 어떤 이유에서인지 root@%의 모든 권한이 날아가 버린 것이다.

 

그래서 모든 권한을 새로 지정해주면 된다.

## 권한 확인(봐도 잘 모르겠음)
SHOW GRANTS FOR 'root'@'%';

## 모든 권한 주기
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

이렇게 설정하면 모든 권한을 주고, 이전에 사용하던 대로 사용 가능하다.

 

그런데 근본적인 문제인 MySQL 도커가 내려간 이유와 권한이 사라진 이유는 아직 모르겠다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함