尝试将 GCP SQL 数据库与 Golang 云 SQL 代理包连接时出现权限错误



我正在尝试使用以下软件包将我的 VM (Debain 9( 服务器上的 go 应用程序连接到我的 mysql 数据库:github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql

查看连接功能:

 // Cfg returns the effective *mysql.Config to represent connectivity to the
// provided instance via the given user and password. The config can be
// modified and passed to DialCfg to connect. If you don't modify the returned
// config before dialing, consider using Dial or DialPassword.
func Cfg(instance, user, password string) *mysql.Config {

假设我输入了在 GCP 实例连接数据库页面上找到的实例"实例连接名称":` 包主

import (
"fmt"
"os"
"github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"
)
func main() {
    cfg := mysql.Cfg("MyAccount:us-west2:myDatabase", "root", os.Getenv("GCPDBPass"))
    db, err := mysql.DialCfg(cfg)
    if err != nil {
        panic(err)
    }
    fmt.Print(db)
}

在哪里找到我的实例连接名称

我收到一个错误: panic: ensure that the account has access to "MyAccount" (and make sure there's no typo in that name)

我已将虚拟机实例 IP 连接到数据库中的授权网络,因此我不知道我是否在此包中使用了正确的实例或用户。

就我而言,问题是由于"github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"包的较低版本。使用命令升级包go get -v -u github.com/GoogleCloudPlatform/cloudsql-proxy解决了该问题。下面是代码片段

"database/sql"
_ "github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"
connString := "user:password@cloudsql(project_id:region:instance)/dbname?charset=utf8&parseTime=True&loc=Local"
db, err := sql.Open("mysql", connectionString)

相关内容

  • 没有找到相关文章

最新更新