我无法通过 Compute Engine 连接到我的数据库。
到目前为止我做过的事情:
- 设置我的计算引擎
- 将我的 Compute Engine 连接到我的 Cloud SQL
- 在我的 Compute Engine 上安装并运行 Cloud Proxy
- 在我的 libs 文件夹中包含 JDBC Jar 文件
- 创建了 JDBC 连接字符串
"jdbc:mysql:///?cloudSqlInstance=&socketFactory=com.google.cloud.sql.mysql.SocketFactory;user=&password=";
- 添加了对我的 Gradle 文件的依赖项
-实现文件树(目录:'libs',包括:['*.jar'])
-实现'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.1.0'
这是堆栈跟踪:
W/System.err:java.sql.SQLNonTransientConnectionException:无法连接到 localhost:3,306 上的 MySQL 服务器。W/System.err:确保在您尝试连接的机器/端口上运行着 MySQL 服务器,并且运行该软件的机器能够连接到该主机/端口(即没有防火墙)。还要确保没有使用 --skip-networking 标志启动服务器。在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) 在 com.mysql.cj.jdbc .exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) W/System.err: at com.mysql.cj.jdbc.exceptions .SQLError.createSQLException(SQLError.java:73) 在 com.mysql.cj.jdbc.ConnectionImpl。ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) W/System.err: at java.lang.Thread.run(Thread.java:764) 原因:java.lang.NullPointerException: 尝试调用虚拟方法 'com. mysql.cj.protocol.SocketConnection com.mysql.cj.protocol.a.NativeProtocol.getSocketConnection()' 在 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 的空对象引用上。 mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) W/System.err: at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer: 跳过58帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB lang.Thread.run(Thread.java:764) 引起:java.lang.NullPointerException:尝试调用虚拟方法'com.mysql.cj.protocol.SocketConnection com.mysql.cj.protocol.a.NativeProtocol.getSocketConnection( )' 在 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 处的空对象引用上 com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) W/System.err : at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB lang.Thread.run(Thread.java:764) 引起:java.lang.NullPointerException:尝试调用虚拟方法'com.mysql.cj.protocol.SocketConnection com.mysql.cj.protocol.a.NativeProtocol.getSocketConnection( )' 在 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 处的空对象引用上 com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) W/System.err : at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB mysql.cj.protocol.a.NativeProtocol.getSocketConnection()' 在 com.mysql.cj.jdbc.ConnectionImpl.createNewIO 的 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 的空对象引用上(ConnectionImpl.java:826) W/System.err: at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB mysql.cj.protocol.a.NativeProtocol.getSocketConnection()' 在 com.mysql.cj.jdbc.ConnectionImpl.createNewIO 的 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 的空对象引用上(ConnectionImpl.java:826) W/System.err: at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB