0

Google 클라우드 dataproc에서 실행중인 작업에서 google cloud sql에 연결하려고합니다. 외부 네트워크에서 클라우드 SQL 인스턴스에 대한 액세스를 승인하지 않았습니다. 내 dataproc 클러스터가 cloud sql과 같은 프로젝트에 있기 때문에 연결을 허용 할 것으로 기대하고 있습니다.Google 클라우드 dataproc의 Google JDBC 드라이버 ClassNotFoundException

나는 cloud sql (https://cloud.google.com/appengine/docs/standard/java/cloud-sql/)에 연결하기위한 문서를 따라왔다. 하지만이 문서는 GAE에서 cloud SQL에 연결하기위한 것입니다. 그럼에도 불구하고 나는 그 단계들을 시도했다. 그러나 데이터 프로 시저 환경에서는 com.mysql.jdbc.GoogleDriver을 사용할 수 없습니다. 따라서 나는이 클래스에 ClassNotFoundException을 얻는다.

어디에서이 패키지를 구할 수 있습니까? 나는 그것을 uber 병에 넣고 dataproc 클러스터에서 실행하려고합니다.

+0

링크 된 문서에 설명 된대로 pom에 종속성'mysql-connector-java' 및 mysql-socket-factory'를 이미 포함하고 있습니까? –

+0

mysql-connector-java는 문서에서 로컬로만 사용된다는 메시지가 있기 때문에 포함하지 않았습니다. –

답변

0

somereading을 수행 한 후 GoogleDriver가 AppEngine 응용 프로그램의 컨텍스트에서만 사용할 수있는 것처럼 들립니다. AppEngine 밖에서는 사용 패턴이 조금 다릅니다. 첫 번째 링크에서 :

String jdbcUrl = String.format(
    "jdbc:mysql://google/%s?cloudSqlInstance=%s&" 
     + "socketFactory=com.google.cloud.sql.mysql.SocketFactory", 
    databaseName, 
    instanceConnectionName); 

Connection connection = DriverManager.getConnection(jdbcUrl, username, password);