【问题标题】:Unable to use MySQL Go Driver in Google App Engine无法在 Google App Engine 中使用 MySQL Go 驱动程序
【发布时间】:2014-01-02 18:29:47
【问题描述】:

我正在尝试让我的应用程序连接到本地 MySQL 数据库。我正在将必要的包导入一个文件中,该文件定义了一个初始化连接的函数

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

github.com/go-sql-driver/mysql 在项目中只导入一次,我相信这意味着它的 init 只被调用一次。但是,每当我使用 goapp serve 启动我的应用程序时,我都会收到

Register called twice for driver mysql

我不知道是什么原因造成的。我知道违规行在哪里,但我不确定Register() 方法是如何被调用两次的。我的怀疑是,因为goapp 在发生更改时会刷新您的应用程序,所以它会一次又一次地调用init(),从而导致Register() 被调用两次。

以前有人见过这种行为吗?

【问题讨论】:

  • 使用dev_appserver.py时是否有效?
  • 我刚刚试了一下并运行了命令dev_appserver.py .,但我仍然遇到同样的错误。
  • 我猜现在的冒犯行是_ "github.com/go-sql-driver/mysql"。当我删除它时,错误消失了,但我知道我需要它在那里。

标签: mysql google-app-engine go


【解决方案1】:

您的代码可能正在导入两个不同的 mysql 包。你确定你不是从其他地方拉一些包裹吗?

【讨论】:

  • 我想我可以 99.99% 确定我不会在其他地方两次调用它。我有一个名为 store.go 的字段,它的包名为 store。该文件的唯一职责是初始化数据库连接。
  • 作为参考,这里是另一个用户修复它的方法:github.com/go-sql-driver/mysql/issues/256#issuecomment-48559630
  • 那里好像没有修复?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多