티스토리 뷰
갑자기 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 도커가 내려간 이유와 권한이 사라진 이유는 아직 모르겠다.
'개발 > 개발팁' 카테고리의 다른 글
org.springframework.http.converter.HttpMessageNotReadableException과 400 에러 해결법 (0) | 2023.04.26 |
---|---|
IntelliJ에서 DataGrip 연결하고 사용하기 (0) | 2023.04.11 |
Dockerfile 작성 권장 사항들 (0) | 2023.03.02 |
AWS EC2에서 Spring Boot 프로젝트를 Docker Tomcat 배포 시 404 에러가 날 때 대처법 (0) | 2023.02.11 |
포스트맨(Postman) Pre-Request Script / Tests로 API 순서대로 자동 요청하기 (0) | 2023.01.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Kotlin
- AWS EC2
- S3
- 스프링부트
- lambda
- CloudFront
- 티스토리챌린지
- java
- OpenFeign
- 람다
- terraform
- MySQL
- docker
- openAI API
- serverless
- AWS
- Elastic cloud
- AOP
- springboot
- GIT
- Log
- 오블완
- Spring
- OpenAI
- EKS
- 후쿠오카
- cache
- ChatGPT
- JWT
- elasticsearch
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함