[MySQL] 접속
2021. 4. 15. 11:15
728x90
반응형
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
String DRIVER = "com.mysql.jdbc.Driver";
String URL = "jdbc:mysql://localhost:3306/databasename?useSSL=false";
String ID ="";
String PW ="";
Connection conn = null;
try{
//1. 드라이버 로딩 : mysql 드라이버 로딩
Class.forName(DIRVER);
//2. mysql과 연결시키기
conn = DriverManager.getConnection(URL, "ID", "PW");
System.out.println("Successfully Connection!");
}
catch(ClassNotFoundException e){
System.out.println("Failed because of not loading driver");
}
catch(SQLException e){
System.out.println("error : " + e);
}
finally{
try{
if(conn != null && !conn.isClosed()){
conn.close();
}
}
catch(SQLException e){
e.printStackTrace();
}
}
jdbc:mysql://localhost/databasename?useSSL=false";
localhost : 접속하려는 데이터베이스 주소
3306 : 데이터베이스에 접속할때 사용하는 포트번호 (설치할때 설정한 포트번호를 사용)
databasename : 접속하려는 데이터베이스명
** 기존 코드로 스프링 연결시에 에러 발생..?useSSL=false 이쪽에서 에러났다고 나오는데 정확한 이유를 모르겠다.
일단 이 코드로 해결
jdbc:mysql://localhost:3306/connectdb?useSSL=false&allowPublicKeyRetrieval=true
jdbc:mysql://localhost:3306/example?serverTimezone=UTC&characterEncoding=UTF-8
현재 버전 8.0.23
mysql 8.X 대 버전 이후로 발생하는 오류로, 보안을 위해 옵션값
데이터베이스의 암호를 네트워크로 전송하기 위해 TLS를 사용하게 되는데, 이를 사용할 수 없을 경우 RSA 암호화 알고리즘을 사용한다.
이를 위해서 데이터베이스 서버의 공개키를 받아와야하는데, 이 때 allowPublicKeyRetrieval 옵션이 true여야 공개키를 받아올 수 있다.
하지만 이 옵션을 사용할 경우 암호가 노출될 수 있기 때문에 이의 기본값이 false로 설정되어있다.
728x90
반응형
'DataBase' 카테고리의 다른 글
Oracle과 MySQL의 큰 차이점 (0) | 2021.04.22 |
---|---|
[Oracle] 제약조건 (0) | 2021.04.16 |
[Oracle] 시퀀스(Sequence) (0) | 2021.04.14 |
[Oracle] 접속 (0) | 2021.04.14 |
[Oracle] LIKE 연산자 (0) | 2021.04.09 |