728x90
인텔리제이 도커 연동 오류 발생..!!!!!
아 나는 왜케 디비에서 오류가 나는 걸까???!!!
일단 나의 오류는
[42000][1044] Access denied for user 'root1234'@'%' to database 'hr'
라는 오류였고 이는 사용자인 root1234가 hr 데이터베이스에 접근할 때 엑세스가 거부되었다는 것을 의미한다.
원인을 분석하면
1. 해당 데이터베이스가 존재하지 않는 경우
- 먼저 해당 데이터베이스가 있는지 확인한다.
2, 권한이 부여되지 않는 경우 --> 나는 이에 해당되었다.
- 사용자 root1234가 hr에 대한 권한이 없을 때 발생하고 권한을 부여하면 된다.
오류 해결
아래 명령을 차례대로 실행하면 된다.
참고로 나는 인텔리제이에서 도커를 사용해서 mysql을 사용하고 있기 때문에 아래와 같은 명령어를 쓴 것이다!
mysql 명령어를 사용하기 위해서 도커 컨테이너 내부에 접속했고 로컬 명령 프롬포트에서는 직접 mysql 명령을 사용할 수 없기 때문에 컨테이너 내부로 들어가서 명령을 실행한 것이다. 도커를 사용하는게 아니면 3번 부터~~
# 1. mysql가 실행 중인지 확인
docker ps
# 2. MySQL 컨테이너 내부로 접속
# docker exec -it [container name] bash
docker exec -it mysql-vacation-db-1 bash
# 3. 컨테이너 내부에서 mysql을 실행
mysql -u root -p
# 4. MySQL의 root 계정 비밀번호를 입력하라는 메시지가 나옴
# 5. 권한 부여
GRANT ALL PRIVILEGES ON hr.* TO 'root1234'@'%';
2번 과정에서 컨테이너 이름에는 컨테이너 id를 써도 된다.
3번 과정에서 mysql -u root -p 명령어를 실행하면 root 계정 비밀번호를 입력하라는 메시지가 뜨고 입력이 완료되면 mysql에 접속 할 수 있게된다. 나는 hr 디비에 대해서만 권한을 주었지만 만약 모든 권한을 주고 싶다면
# 모든 권한 주기
GRANT ALL PRIVILEGES ON *.* TO 'root1234'@'%';
728x90