...

Package mysql

import "github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"
Overview
Index
Examples

Overview ▾

Package mysql adds a 'cloudsql' network to use when you want to access a Cloud SQL Database via the mysql driver found at github.com/go-sql-driver/mysql. It also exposes helper functions for dialing.

func Cfg

func Cfg(instance, user, password string) *mysql.Config

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.

Example

ExampleCfg shows how to use Cloud SQL Auth proxy dialer if you must update some settings normally passed in the DSN such as the DBName or timeouts.

Code:

cfg := mysql.Cfg("project:region:instance-name", "user", "")
cfg.DBName = "DB_1"
cfg.ParseTime = true

const timeout = 10 * time.Second
cfg.Timeout = timeout
cfg.ReadTimeout = timeout
cfg.WriteTimeout = timeout

db, err := mysql.DialCfg(cfg)
if err != nil {
    panic("couldn't dial: " + err.Error())
}
// Close db after this method exits since we don't need it for the
// connection pooling.
defer db.Close()

var now time.Time
fmt.Println(db.QueryRow("SELECT NOW()").Scan(&now))
fmt.Println(now)

func Dial

func Dial(instance, user string) (*sql.DB, error)

Dial logs into the specified Cloud SQL Instance using the given user and no password. To set more options, consider calling DialCfg instead.

The provided instance should be in the form project-name:region:instance-name.

The returned *sql.DB may be valid even if there's also an error returned (e.g. if there was a transient connection error).

func DialCfg

func DialCfg(cfg *mysql.Config) (*sql.DB, error)

DialCfg opens up a SQL connection to a Cloud SQL Instance specified by the provided configuration. It is otherwise the same as Dial.

The cfg.Addr should be the instance's connection string, in the format of:

project-name:region:instance-name.

func DialPassword

func DialPassword(instance, user, password string) (*sql.DB, error)

DialPassword is similar to Dial, but allows you to specify a password.

Note that using a password with the proxy is not necessary as long as the user's hostname in the mysql.user table is 'cloudsqlproxy~'. For more information, see:

https://cloud.google.com/sql/docs/sql-proxy#user