서버 업데이트와 함께 MySQL을 동시에 진행하였다. 5.4 버전에서 8.0 으로 업데이트를 진행했다. 그런데 갑자기 테이블이 자바단에서 생성하는 부분이 오류가 발생해 테이블이 더이상 생성되지 않았다.
기존의 쿼리는
GRANT ALL PRIVILEGES ON `id`.* to 'id'@'%' identified by 'password'
로 작성이 되어 있는 상태였다.
그런데 해당 부분의 에러가
check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 라는 에러가 발생하였다.
이 에러같은 경우는 8.0 이후에 보안관련 내용이 강화되고 유저 생성 방식이 달랐다.
유저 먼저 생성
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
해당 유저에게 권한 부여
GRANT ALL PRIVILEGES ON test_db.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
이런식으로 유저를 생성한 후 권한 부여하는 방식으로 변경
또한, 유저에 대해서 비밀번호 저장하는 방식의 변경되었고, 해당 정책 확인 방식
show variables like 'validate_password%';
위의 쿼리문으로 정책을 확인하고 정책 변경을 통해 처리해준다.