에러 상태
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException
만약 사용하시는 DB가 Mysql 8.0 버전이고 public key retrieval is not allowed에러가 발생한다면 다음과 같은 옵션을 확인해보셔야합니다.
- useSSL: DB에 SSL로 연결하는지 안하는지 확인합니다.
- allowPublicKeyRetrieval: 서버에서 RSA 공개키를 검색하거나 가져와야하는지 확인합니다.
에러 발생 원인
에러가 발생하는 원인은 useSSL=false로 설정하고 allowPublicKeyRetrieval 설정을 하지 않은 경우입니다.
따라서 다음과 같이 설정해주시면 해결하실 수 있습니다.
접속 URL 설정
root-context파일을
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- for mysql -->
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/yse_spring_mvc?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true&" />
<property name="username" value="yse_spring_mvc_user" />
<property name="password" value="1234" />
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations"
value="classpath:/sqlmap/**/*_SQL.xml" />
</bean>
<bean id="sqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>
property name="url"부분에
useSSl=false를 하고
allowPublicKeyRetrieval=true를 해주었습니다.
728x90
'웹' 카테고리의 다른 글
[HTML] form 태그에서 PUT, DELETE 방식 사용해보기 (0) | 2022.05.25 |
---|---|
todo 웹 만들기 (0) | 2021.08.24 |
웹21일차 (0) | 2021.08.17 |
Visual Studio Code에서 JavaScript 디버그 실행하기 (0) | 2021.08.03 |
Visual Studio Code에서 JavaScript을 실행하고싶을 때 (0) | 2021.08.03 |