hello world
spring Mysql 연결 오류 정리 본문
세팅에 하루종일 허비한부분정리..;;
package com
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
public class MYSQLConnecetionTest {
private static final String DRIVER = "com.mysql.jdbc.Driver"; //Connection을 구현한 클래스의 이름
private static final String URL = "jdbc:mysql://localhost:3306/sys"; //mysql 서버 주소
private static final String USER = "root"; //계정
private static final String PW = "3636"; // 비밀번호
@Test //jUnit이 테스트함
public void testConnection() throws Exception{
Class.forName(DRIVER); //DRIVER라는 이름을 가진 클래스를 찾음
//DB 계정과 연결된 객체를 Connection 클래스의 인스턴스인 con에 담음
try(Connection con = DriverManager.getConnection(URL,USER,PW)){
System.out.println(con); //연결된 계정 출력
}catch(Exception e) { //연결이 되지 않은 예외처리
e.printStackTrace();
}
}
}
junit으로 mysql 디비연결 테스트하는데 계속 안됨..
첨에는 putty설정 잘못해서 접속을 못하나싶어서 local에 깔아서 했는데도 이런오류뜨는겨...
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
junit 말고 그냥 클래스에서 jdbc 연결 테스트도 했는데
java.math.BigInteger cannot be cast to java.lang.Long 이런 오류뜸 후 ;;
그래서 찾아보니까 커넥터 버전문제일수도 있다고하길래
<!-- Mysql Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.22</version>
</dependency>
<version>8.0.15</version>으로 변경함 그니까 저 오류 안뜸 ..ㅂㄷㅂㄷ
근데 또 이제 이런 오류뜸
java.sql.SQLException: The server time zone value '´???¹?±¹ ???ؽ?' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
찾아보니까 버전 8부터는 이러케 사용해야한다구한다.
package com
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Dtest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sys?useUnicode=true&serverTimezone=Asia/Seoul", "root", "3636");
System.out.println("Success!");
} catch (SQLException ex) {
System.out.println("SQLException:" + ex);
} catch (Exception e) {
System.out.println("Exception:" + e);
}
}
}
근데 또 properties에서는 오류남 ...
"serverTimezone" 엔티티에 대한 참조는 ';' 구분자로 끝나야 합니다.
이거는 & -> & 로 바꿔줘야한다구한다...
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/sys?characterEncoding=UTF-8&serverTimezone=UTC"/>
출근하니까 위에꺼도 안된다...
?&useSSL=false&serverTimezone=UTC
추가하니까 됨 ...
삽질끗
'WEB > Spring .Spring Boot' 카테고리의 다른 글
bean 우선순위 부여하기 @DependsOn (1) | 2022.01.18 |
---|---|
gitignore로 이미 올라간 파일 지우기 (0) | 2022.01.13 |
세팅 중 참고 사이트 (0) | 2022.01.12 |
다중 디비 접속 Annotation으로 다중 디비 구분하기 (0) | 2022.01.10 |
spring 프로젝트 초기 인코딩 한글 설정 (0) | 2020.06.05 |