通过JDBC使用计算引擎连接到云SQL



我无法通过计算引擎连接到我的数据库。

到目前为止我所做的事情:

  1. 设置我的计算引擎
  2. 将我的计算引擎连接到我的云SQL
  3. 在我的计算引擎上安装并运行云代理
  4. 在我的libs文件夹中包含JDBC Jar文件
  5. 已创建JDBC连接字符串

"jdbc:mysql:///?cloudSqlInstance=&socketFactory=com.google.cloud.sql.mysql.socketFactory;user=&密码=";;

  1. 添加了对我的Gradle文件的依赖

-实现文件树(目录:'libs',包括:['*.jar'](
-实现'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.1.0'

这是堆栈跟踪:

W/系统错误:java.sql.SQLNonTransientConnectionException:无法连接到localhost:3306上的MySQL服务器。W/System.err:确保在您所在的机器/端口上运行MySQL服务器正在尝试连接到并且该软件正在运行的计算机能够连接到此主机/端口(即未防火墙(。同时制作确保服务器没有使用--skip网络启动旗帜在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(在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63(W/System.err:位于com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73(网址:com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:470(在com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246(W/System.err:位于com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197(位于java.sql.DriverManager.getConnection(DriverManager.java:569(位于java.sql.DriverManager.getConnection(DriverManager.java:237(W/System.err:位于com.dedase.dedasconstruction.ui.login.LoginActivity$GetPatientID.doInBackground(LoginActivity.java:150(网址:com.dedase.dedasconstruction.ui.login.LoginActivity$GetPatientID.doInBackground(LoginActivity.java:136(在android.os.AsyncTask$2.call上(AsyncTask.java:333(位于java.util.concurrent.FFutureTask.run(FutureTask.java:266(在android.os.AsyncTask$SerialExecutor$1.run上(AsyncTask.java:245(位于java.util.concurrent.ThreadPoolExecutiator.runWorker(ThreadPoolExecutiator.java:1162(位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636(W/System.err:在java.lang.Thread.run(线程.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:位于com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456(…还有12个I/Choreographer:跳过了58帧!应用程序可能在其主线程上做了太多的工作。I/合子:执行完整代码缓存集合,代码=123KB,数据=111KB代码缓存收集后,代码=117KB,数据=78KB

这行localhost:3,306.看起来很可疑。你确定你在某个地方没有打字错误吗
您可能遇到了此回购,但它不是很准确。我手头没有java客户端来测试它,但我确实使用了不同堆栈的Cloud SQL,使用Proxy的目的是让你的应用程序通过它连接到数据库,就像数据库本身在本地运行一样。您的连接字符串除了creds和localhost:3306之外不应该有任何内容。

相关内容

  • 没有找到相关文章

最新更新