문제
Docker에서 MySQL을 받아와서, 내 프로젝트랑 같이 docker-compose.yml에 작성한 후에 실행시키니 아래와 같은 오류가 발생했다.
java.sql.SQLException: Access denied for user 'username'@'~' (using password: YES)
해결
MySQL의 관리자 계정으로 사용자에게 접근 권한을 부여해야한다.
만약 도커로 MySQL을 다운했다면, 도커 허브에서 그렇지 않다면 MySQL bash에서 바로 진행할 수 있다.
우선 관리자 계정으로 mysql에 접속하자.
mysql -u root -p
이후 패스워드를 입력한다.
이후, 관리자 계정으로 접근 권한을 부여하기 위해 아래와 같은 명령어를 실행하자.
CREATE USER 'new_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%';
FLUSH PRIVILEGES;
new_user에는 user 이름을 작성하면 된다. user 이름은 docker-compose.yaml에 작성되어있다. 또한 @ 뒤에 '%'는 모든 접근을 의미한다. 따라서 new_user의 모든 접근을 허용한다는 뜻으로 이해할 수 있다.
password 또한 docker-compose.yaml에 작성된 것처럼 적어주자.
위의 작업을 모두 마쳤다면, 다시 서버를 실행할 때 잘 작동되는 것을 볼 수 있다.
'Error Record' 카테고리의 다른 글
MySQL Workbench 튕김 현상 해결 (0) | 2023.08.30 |
---|---|
mysql error code: 1146. Table 'sys.*' doesn't exist (0) | 2023.08.30 |
no main manifest attribute, in *.jar (0) | 2023.08.30 |
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH? (0) | 2023.08.08 |
인텔리제이에서 클릭이 안 먹힐 때 (2) | 2023.08.08 |