google.golang.org/appengine/cloudsql 包 (v1.6.8)

cloudql 软件包用于公开对 Google Cloud SQL 数据库的访问权限。

此软件包不适用于 App Engine“柔性环境”。

此软件包旨在让 MySQL 驱动程序进行特定于 App Engine 的连接。应用应该通过 database/sql 使用此软件包:选择支持此软件包的纯 Go MySQL 驱动程序,并使用 sql.Open 与协议“cloudsql”以及 Cloud SQL 实例的地址。

经测试可与 Cloud SQL 配合使用的 Go MySQL 驱动程序是 go-sql-driver:

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

db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname")

另一个适用于 Cloud SQL 的驱动程序是 mymysql 驱动程序:

import "database/sql"
import _ "github.com/ziutek/mymysql/godrv"

db, err := sql.Open("mymysql", "cloudsql:instance-name*dbname/user/password")

借助上述任何一种驱动程序,您可以执行标准 SQL 查询。 此示例假定有一个名为“users”的表,其包含“first_name”和“last_name”列:

rows, err := db.Query("SELECT first_name, last_name FROM users")
if err != nil {
    log.Errorf(ctx, "db.Query: %v", err)
}
defer rows.Close()

for rows.Next() {
    var firstName string
    var lastName string
    if err := rows.Scan(&firstName, &lastName); err != nil {
        log.Errorf(ctx, "rows.Scan: %v", err)
        continue
    }
    log.Infof(ctx, "First: %v - Last: %v", firstName, lastName)
}
if err := rows.Err(); err != nil {
    log.Errorf(ctx, "Row error: %v", err)
}

函数

func Dial

func Dial(instance string) (net.Conn, error)

Dial 连接到指定的 Cloud SQL 实例。