Criar uma conexão de soquete usando Go
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Abra uma conexão de soquete Unix ao Cloud SQL para MySQL usando o pacote database/sql do Go.
Mais informações
Para ver a documentação detalhada que inclui este exemplo de código, consulte:
Exemplo de código
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],[],[],[],null,["# Create a socket connection by using Go\n\nOpen a Unix socket connection to Cloud SQL for MySQL by using Go's database/sql package.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Connect from App Engine flexible environment](/sql/docs/mysql/connect-app-engine-flexible)\n- [Connect from App Engine standard environment](/sql/docs/mysql/connect-app-engine-standard)\n- [Connect from Cloud Build](/sql/docs/mysql/connect-build)\n- [Connect from Cloud Run](/sql/docs/mysql/connect-run)\n- [Connect from Cloud Run functions](/sql/docs/mysql/connect-functions)\n- [Connect using the Cloud SQL Auth Proxy](/sql/docs/mysql/connect-auth-proxy)\n- [Manage database connections](/sql/docs/mysql/manage-connections)\n\nCode sample\n-----------\n\n### Go\n\n\nTo authenticate to Cloud SQL for MySQL, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n package cloudsql\n\n import (\n \t\"database/sql\"\n \t\"fmt\"\n \t\"log\"\n \t\"os\"\n\n \t_ \"github.com/go-sql-driver/mysql\"\n )\n\n // connectUnixSocket initializes a Unix socket connection pool for\n // a Cloud SQL instance of MySQL.\n func connectUnixSocket() (*sql.DB, error) {\n \tmustGetenv := func(k string) string {\n \t\tv := os.Getenv(k)\n \t\tif v == \"\" {\n \t\t\tlog.Fatalf(\"Fatal Error in connect_unix.go: %s environment variable not set.\", k)\n \t\t}\n \t\treturn v\n \t}\n \t// Note: Saving credentials in environment variables is convenient, but not\n \t// secure - consider a more secure solution such as\n \t// Cloud Secret Manager (https://cloud.google.com/secret-manager) to help\n \t// keep secrets safe.\n \tvar (\n \t\tdbUser = mustGetenv(\"DB_USER\") // e.g. 'my-db-user'\n \t\tdbPwd = mustGetenv(\"DB_PASS\") // e.g. 'my-db-password'\n \t\tdbName = mustGetenv(\"DB_NAME\") // e.g. 'my-database'\n \t\tunixSocketPath = mustGetenv(\"INSTANCE_UNIX_SOCKET\") // e.g. '/cloudsql/project:region:instance'\n \t)\n\n \tdbURI := fmt.Sprintf(\"%s:%s@unix(%s)/%s?parseTime=true\",\n \t\tdbUser, dbPwd, unixSocketPath, dbName)\n\n \t// dbPool is the pool of database connections.\n \tdbPool, err := sql.Open(\"mysql\", dbURI)\n \tif err != nil {\n \t\treturn nil, fmt.Errorf(\"sql.Open: %w\", err)\n \t}\n\n \t// ...\n\n \treturn dbPool, nil\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=cloud_sql_mysql)."]]