当前位置: 首页 > 知识库问答 >
问题:

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

长孙鸿波
2023-03-14

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

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

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

"jdbc: mysql:///? cloud dSqlInstance=

-实现文件树(目录:“libs”,包括:[“*.jar”)
-实现“com”。谷歌。云sql:mysql-socket-factory-connector-j-8:1.1.0'

这是堆栈跟踪:

带系统。错误:java。sql。SQLNonTransientConnectionException:无法连接到本地主机3306上的MySQL服务器。带系统。错误:请确保您尝试连接的机器/端口上运行着MySQL服务器,并且运行此软件的机器能够连接到此主机/端口(即未防火墙)。还要确保服务器没有使用--skip networking标志启动。在com.mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:110)。mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:97)。mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:89)。mysql。cj。jdbc。例外情况。SQLError。带系统的createSQLException(SQLError.java:63)。错误:位于com.mysql。cj。jdbc。例外情况。SQLError。在com上创建sqlexception(SQLError.java:73)。mysql。cj。jdbc。连接示例。(ConnectionImpl.java:470)位于com.mysql。cj。jdbc。连接示例。getInstance(ConnectionImpl.java:246),带系统。错误:位于com.mysql。cj。jdbc。未注册的驱动程序。在java上连接(NonRegisteringDriver.java:197)。sql。DriverManager。java上的getConnection(DriverManager.java:569)。sql。DriverManager。带系统的getConnection(DriverManager.java:237)。错误:位于com。dedase。dedaseconstruction公司。用户界面。登录名。LoginActivity$GetPatientID。com上的doInBackground(LoginActivity.java:150)。dedase。dedaseconstruction公司。用户界面。登录名。LoginActivity$GetPatientID。android上的doInBackground(LoginActivity.java:136)。操作系统。2美元。在java上调用(AsyncTask.java:333)。util。同时发生的未来任务。在android上运行(FutureTask.java:266)。操作系统。AsyncTask$SerialExecutor$1。在java上运行(AsyncTask.java:245)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1162)。util。同时发生的ThreadPoolExecutor$Worker。运行(ThreadPoolExecutor.java:636),带系统。错误:在java。lang.Thread。运行(Thread.java:764)的原因:java。lang.NullPointerException:尝试调用虚拟方法com.mysql。cj。协议SocketConnection com.mysql。cj。协议a、 NativeProtocol。com上的空对象引用上的getSocketConnection()。mysql。cj。jdbc。连接示例。com上的connectOneTryOnly(ConnectionImpl.java:980)。mysql。cj。jdbc。连接示例。createNewIO(ConnectionImpl.java:826),带系统。错误:位于com.mysql。cj。jdbc。连接示例。(ConnectionImpl.java:456)。。。还有12个编舞:跳过了58帧!应用程序可能在其主线程上做了太多工作。I/zygote:执行完整代码缓存收集,代码=123KB,代码缓存收集后数据=111KB,代码=117KB,数据=78KB

共有1个答案

夏青青
2023-03-14

此行本地主机:3306 看起来很可疑。你确定某处没有输入错误吗<你可能遇到过这个回购协议,它不是很准确。我手头没有java客户端来测试它,但我确实使用了具有不同堆栈的云SQL,使用代理的意义在于,你的应用程序通过它连接到DB,就像DB本身在本地运行一样。您的连接字符串除了creds和localhost:3306之外,不应包含任何内容。

 类似资料:
  • 根据我在互联网上发现的几个来源,不可能仅通过内部IP将谷歌云功能连接到受限计算引擎实例(例如。https://groups.google.com/forum/#!主题/gce讨论/HEn5P9PJzYQ)。真的还是这样吗?我的设置如下所示: 谷歌云充当API(公共) 我现在通过防火墙规则将计算引擎实例限制为仅内部流量(10.128.0.0/9)。我的应用程序引擎仍然可以连接到计算引擎实例,但我的云

  • 更新1这是我的防火墙规则: 图片供参考:防火墙规则列表截图

  • 我知道这个问题以前已经问过很多次了。然而,我似乎不能正确。 我正在尝试用Java连接到一个本地MS SQL server实例(我用.NET连接到这个服务器没有问题)。 我做错了什么?

  • 我正在尝试使用云SQL代理将GCE实例连接到云SQL实例(第二代)。当我ssh到GCE实例时 我得到 我已阅读 上的文档https://cloud.google.com/sql/docs/compute-engine-access#gce-连接代理和 https://cloud.google.com/sql/docs/sql-proxy 两个实例都在同一个项目中,并且云SQL API在GCE实例(

  • 我创建了一个正在运行的云Sql实例。我一直在尝试通过Android Studio和Eclipse连接到它,但都失败了。 我不断地从中得到这个错误: 我所做的: 确保我的IP在Instance Connections(实例连接)选项卡下被列入白名单 url连接的不同格式 通过ping确保服务器已启动 仅通过云外壳连接 已确认云端端口已打开

  • 问题内容: 我正在尝试通过网络连接到MySQL数据库。我已经安装了MySQL,并且该服务在默认端口上运行。我还将SQL连接器安装到jar文件中,并将Java JDK添加到服务器计算机中。我可以使用以下代码连接到本地数据库: 但是,当我尝试通过IP地址(例如:192.168.1.45)通过网络连接到它时: 我收到连接错误: 有人知道这个问题是什么吗?我需要添加其他地址吗?我已经使用地址添加了默认端口