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

如何在App Engine上使用go-sql-driver / mysql连接到Google Cloud SQL?

陈阳舒
2023-03-14
问题内容

我正在App Engine上的Go中使用go-sql-driver / mysql驱动程序来连接到Cloud SQL实例,如下所示:

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

db, dbErr := sql.Open("mysql", "root@cloudsql(project:instance)/database"
...
pingErr := db.Ping()

但是我收到了“ 拒绝许可 ”的信pingErr

当然,我已经根据文档检查了我的应用是否已在Cloud
SQL控制台的“访问控制”下得到了授权。我还尝试添加具有特权的MySQL用户,并使用它user:password来代替root甚至不指定用户。

我究竟做错了什么?

更新:

根据@Kyle的建议,我尝试了替代驱动程序ziutek /
mymysql
,它可与以下代码一起使用:

import (
   "database/sql"
   _ "github.com/ziutek/mymysql/godrv"
   _ "github.com/ziutek/mymysql/mysql"
   _ "github.com/ziutek/mymysql/native"
)

db, dbErr := sql.Open("mymysql", "cloudsql:project:instance*database/user/password"

如果我能弄清楚出了什么问题,请猜是时候对go-sql-driver /
mysql发出拉取请求了!任何见解或经验表示赞赏!


问题答案:

这是 版本问题

如果仔细看,App Engine支持已添加到master分支中,但是最新版本是1.1,并且不包含它。

相反的go get github.com/go-sql-driver/mysql,你需要手动git clone https://github.com/go-sql-driver/mysql(主分支)进入$GOPATH/src/随后 部署到App
Engine!

作者的评论是让我感动的,@
Kyle建议尝试另一个驱动程序的方法(有效的)促使我重新阅读所有内容-谢谢!



 类似资料:
  • 问题内容: 我正在研究自动克隆数据库的Golang脚本。我正在使用go-sql- driver,但是在文档中找不到创建新数据库的方法。与MySQL的连接需要以下URL方案: 但是该数据库尚不存在,我只想连接到服务器,然后创建一个新的数据库。 我怎样才能做到这一点?我必须使用其他驱动程序吗? 问题答案: 您可以完美地使用go-sql-driver。但是,您需要使用具有适当访问权限的mysql用户来创

  • Go MySQL Driver 是 MySQL 数据库的 Go 客户端开发包。 示例代码: import "database/sql" import _ "code.google.com/p/go-mysql-driver/mysql" db, e := sql.Open("mysql", "user:password@/dbname?charset=utf8")

  • 问题内容: 我收集到有两种方法可以在Windows中(在Windows上)连接到Oracle DB: github.com/tgulacsi/goracle github.com/mattn/go-oci8 但是对于我这个级别的人(开源+ golang的初学者)来说,这两种方法/驱动程序非常棘手。 在不同的机器上进行部署,开发等工作时,这也是一个负担(也假设它会工作)。 有没有更好的方法可以在go

  • 问题内容: 因此,我在项目的构建路径中添加了MySQL Connector / J 5.1.16。我正在使用默认的OSX Java软件包和MAMP Pro 1.9.4,以及MySQL 5.1.44和Eclipse。 我用以下功能设置了一个简单的Java应用程序: 当我运行它时,出现以下错误: 我用谷歌搜索了大约一个小时,没有成功。有想法该怎么解决这个吗?JDBC驱动程序应该很好,我对此进行了测试。

  • 我是相当新的和。我使用的是Mac OS Sierra预装的Apache和PHP副本。我已经下载并配置了(工作完全正常,能够使用等等)。但是,我一直在努力从连接到数据库。我有这个代码: 我已将其保存为文件,但当我尝试从浏览器打开文件时,不断出现此错误: 警告:mysqli_connect():(HY000/2002):第6行 /Users/Mahfouz/Sites/connect_prac.php

  • 问题内容: 我在Windows上使用ActiveState Python 3,并想连接到我的MySQL数据库。我听说那是要使用的模块。我找不到Python 3。 有二进制文件存在的存储库吗?如何在Windows上的Python 3中连接到MySQL? 问题答案: 当前有一些将python 3与mysql结合使用的选项: https://pypi.python.org/pypi/mysql-conn