O pacote cloudsql expõe o acesso aos bancos de dados do Google Cloud SQL.
Este pacote não funciona no "ambiente flexível" do App Engine.
Ele se destina a drivers do MySQL que fazem as conexões específicas do App Engine. Os aplicativos devem usar esse pacote por meio do database/sql: selecione um driver Go MySQL puro compatível com o pacote e use sql.Open com o protocolo "cloudsql" e um endereço da instância do Cloud SQL.
Um driver Go MySQL que foi testado para funcionar bem com o Cloud SQL é o 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")
Outro driver que funciona bem com Cloud SQL é o driver mymysql:
import "database/sql" import _ "github.com/ziutek/mymysql/godrv" db, err := sql.Open("mymysql", "cloudsql:instance-name*dbname/user/password")
Você pode executar uma consulta SQL padrão com qualquer um deles. Neste exemplo, consideramos que há uma tabela chamada "usuários" com as colunas "first_name" e "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) }
Funções
func Dial
Dial se conecta à instância nomeada do Cloud SQL.