DataBase

[MySQL] 접속

Dahoon06 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