当前位置: 首页 > 面试题库 >

Google App Engine Golang,驱动程序:连接不良

楚德辉
2023-03-14
问题内容

我有一些在本地GAE服务器上运行的代码,但是一旦将其发布到GAE,它就会引发错误“驱动程序:连接错误”。

下面的代码生成一个新的* sql.DB:

func NewDb() (*sql.DB, error) {
  cloud := os.Getenv("dbcloud")
  local := os.Getenv("dblocal")
  if appengine.IsDevAppServer() {
    return sql.Open("mysql", "root@tcp("+local+":3306)/dbo")
  }
  return sql.Open("mysql", "root@cloudsql("+cloud+")/dbo")
}

在我的app.yaml中,我有以下内容:

env_variables:
  dbcloud: 'projectid:instancename'
  dblocal: 'xxx.xxx.xxx.xxx'

看来正确返回了一个新的* sql.DB,但是一旦我开始使用准备好的语句,事情就会开始崩溃。

db, err := NewDb() // err is nil
stmt, err := db.Prepare("INSERT INTO dbo.Users (Id) VALUES (?)") // err is driver: bad connection

我已经为此战斗了一个小时,我可能正在做一些非常愚蠢的事情,任何帮助将不胜感激!


问题答案:

我最终需要更改我的dbcloud变量以包括从以下位置将其更改的SQL Server的区域:

'projectid:instancename'

至:

'projectid:regionname:instancename'

不知道为什么我需要这样做,因为它不在https://github.com/go-sql-
driver/mysql
的文档中,但现在都可以使用!



 类似资料:
  • 问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O

  • 我的java代码使用com.mongodb.DB的单个实例连接到mongo DB。现在我使用这个db实例跨越500个线程,这些线程对我的db执行命令。所有这些都并行运行。以下是conf参数: 现在,如果我使用“db.serverStatus().connections”检查我的数据库,我会得到以下结果:“current”:52,“available”:19999,“totalCreated”:Nu

  • 我试图理解Datastax Cassandra驱动程序中的连池,因此我可以更好地在我的Web服务中使用它。 我有留档的1.0版。它说: Java驱动程序异步使用连接,因此可以在同一个连接上同时提交多个请求。 他们通过连接理解什么?当连接到集群时,我们有:一个生成器、一个集群和一个会话。他们中的哪一个是连接? 例如,有一个参数: MaxSimultaneousRecestsPerConnection

  • 这是我在运行上述程序时遇到的错误。有人解决了这个问题吗? 我尝试过改变Selenium和ChromeDriver的版本,但没有任何效果。

  • 我在向Pentaho数据集成添加MSSQL SERVER连接时遇到问题。 我尝试了以下方法: 我已经下载了最新的jdbc驱动程序(sqljdbc42)并将它们移动到lib文件夹 我在SQL SERVER中创建了一个新用户,并授予了它所有权限...没有帮助。 非常确定用户名/密码和登录设置 多次重新安装Pentaho,重新安装JDBC驱动程序 我有一台Mac,但在平行上使用Windows,我在这个环

  • 我有一个类试图连接到Heroku数据库: 它返回的是: java.lang.RuntimeException:java.sql。SQLException:未找到适合jdbc的驱动程序:postgres://osnvehqhufnxzr:TS3Qt37c_HHbGRNKw3yk7g88fp@ec2-54-225-93-34.compute-1.amazonaws.com:5432/d39mfq0od