스프링부트 어플리케이션에서 Mysql 데이터베이스 접속하려니까 자꾸 에러가 났습니다. 아이디와 비밀번호도 분명 정확히 입력했는데 말이죠
구글링을 하다가 MySql 디비에 직접 접속해서 다른 설정을 해야한다는 사실을 깨달았습니다.
1. MYSQL 접속
서버에서 다음 명령어를 통해 root 계정으로 mysql을 실행합니다.
mysql -uroot -p
그리고 나서 mysql 데이터베이스를 선택해줍니다.
use mysql
2. 유저 조회 및 생성
mysql에 등록된 유저를 조회해 봅니다.
select host, user from user;
저는 이미 등록을 마친 상태라 host에 %와 'dksekfldks65' 라는 아이디가 나옵니다. 물론 root계정도 추가를해주었습니다. 여러분은 이렇게 나오지 않을겁니다. 이제 유저를 생성해보겠습니다.
CREATE USER 'root'@'%' IDENTIFIED BY 'pass';
위의 명령어는 어디서든 접근할 수 있도록 %를 host에 %를 지정해주었고, 비밀번호 예시로 pass를 root계정에 설정했습니다. 이제 유저 권한을 부여합니다.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
이것만 하면 안되고 부여한 권한을 적용해야합니다.
FLUSH PRIVILEGES;
3. 스프링부트 에러
다시 접속을 해보자 에러 메시지가 바꼈습니다. mysql의 버전이 맞지 않아서 발생한 에러였습니다.
pom.xml에 의존성을 추가해줍니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
REFERENCE
https://yzink.tistory.com/entry/ERROR-MySQL-authentication-plugin-cachingsha2passwordquerycachesize
'MYSQL' 카테고리의 다른 글
[MYSQL] 웹 어플리케이션 MYSQL 접근 허용 (0) | 2020.02.20 |
---|---|
[mysql] 현재 시간 확인 및 변경 (0) | 2020.02.19 |
[MYSQL] LEFT OUTER JOIN(외부조인) (0) | 2019.11.05 |
[Mysql] 테이블 인덱스 조작 (0) | 2019.09.09 |