无法创建套接字工厂'com.google.cloud.sql.mysql.SocketFactory;' [英] Could not create socket factory 'com.google.cloud.sql.mysql.SocketFactory;'
本文介绍了无法创建套接字工厂'com.google.cloud.sql.mysql.SocketFactory;'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我似乎无法使它正常工作..
I can't seem to get this to work ..
我正在使用 Google灵活环境,并想连接到我的第二代云SQL 数据库.我目前遇到此异常:
I am using Google Flexible Environment and want to connect to my Second Generation Cloud SQL database. I am currently getting this exception:
[main] ERROR com.mahlzeit.server.BootstrappingServerConfig - Error trying to migrate SQL scripts ..
org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
at org.flywaydb.core.internal.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:56)
at org.flywaydb.core.Flyway.execute(Flyway.java:1385)
at org.flywaydb.core.Flyway.migrate(Flyway.java:1006)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create socket factory 'com.google.cloud.sql.mysql.SocketFactory;' due to underlying exception:
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
Caused by: java.lang.ClassNotFoundException: com/google/cloud/sql/mysql/SocketFactory;
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.mysql.jdbc.MysqlIO.createSocketFactory(MysqlIO.java:3321)
...
这就是我配置DataSource
的方式:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://google/mz_db?cloudSqlInstance=mz-test:us-central1:mz-life-cloudsql-prod&socketFactory=com.google.cloud.sql.mysql.SocketFactory;" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
我添加了 mysql-socket-factory
作为依赖项:>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory</artifactId>
<version>1.0.0</version>
</dependency>
那我为什么要得到这个例外?
so why am I getting this exception?
推荐答案
结尾处有分号,因此它试图加载名为com.google.cloud.sql.mysql.SocketFactory;
的类.尝试在末尾删除分号.
You have a semicolon at the end so it's trying to load a class called com.google.cloud.sql.mysql.SocketFactory;
Try removing the semicolon at the end.
这篇关于无法创建套接字工厂'com.google.cloud.sql.mysql.SocketFactory;'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文