Cloud SQL Go Connector を使用して接続を作成する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Cloud SQL Go Connector を使用して Cloud SQL for MySQL への接続を開きます。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
Go
Cloud SQL for MySQL に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],[],[],[],null,["# Create a connection using the Cloud SQL Go Connector\n\nOpen a connection to Cloud SQL for MySQL by using the Cloud SQL Go Connector.\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 Run](/sql/docs/mysql/connect-run)\n- [Connect from Cloud Run functions](/sql/docs/mysql/connect-functions)\n- [Connect using Cloud SQL Language Connectors](/sql/docs/mysql/connect-connectors)\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\"context\"\n \t\"database/sql\"\n \t\"fmt\"\n \t\"log\"\n \t\"net\"\n \t\"os\"\n\n \t\"cloud.google.com/go/cloudsqlconn\"\n \t\"github.com/go-sql-driver/mysql\"\n )\n\n func connectWithConnector() (*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_connector.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 passwords and other 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\tinstanceConnectionName = mustGetenv(\"INSTANCE_CONNECTION_NAME\") // e.g. 'project:region:instance'\n \t\tusePrivate = os.Getenv(\"PRIVATE_IP\")\n \t)\n\n \t// WithLazyRefresh() Option is used to perform refresh\n \t// when needed, rather than on a scheduled interval.\n \t// This is recommended for serverless environments to\n \t// avoid background refreshes from throttling CPU.\n \td, err := cloudsqlconn.https://cloud.google.com/go/docs/reference/cloud.google.com/go/cloudsqlconn/latest/index.html#cloud_google_com_go_cloudsqlconn_Dialer_NewDialer(context.Background(), cloudsqlconn.https://cloud.google.com/go/docs/reference/cloud.google.com/go/cloudsqlconn/latest/index.html#cloud_google_com_go_cloudsqlconn_Option_WithLazyRefresh())\n \tif err != nil {\n \t\treturn nil, fmt.Errorf(\"cloudsqlconn.NewDialer: %w\", err)\n \t}\n \tvar opts []cloudsqlconn.https://cloud.google.com/go/docs/reference/cloud.google.com/go/cloudsqlconn/latest/index.html#cloud_google_com_go_cloudsqlconn_DialOption\n \tif usePrivate != \"\" {\n \t\topts = append(opts, cloudsqlconn.https://cloud.google.com/go/docs/reference/cloud.google.com/go/cloudsqlconn/latest/index.html#cloud_google_com_go_cloudsqlconn_DialOption_WithPrivateIP())\n \t}\n \tmysql.RegisterDialContext(\"cloudsqlconn\",\n \t\tfunc(ctx context.Context, addr string) (net.Conn, error) {\n \t\t\treturn d.https://cloud.google.com/go/docs/reference/cloud.google.com/go/cloudsqlconn/latest/index.html#cloud_google_com_go_cloudsqlconn_Dialer_Dial(ctx, instanceConnectionName, opts...)\n \t\t})\n\n \tdbURI := fmt.Sprintf(\"%s:%s@cloudsqlconn(localhost:3306)/%s?parseTime=true\",\n \t\tdbUser, dbPwd, dbName)\n\n \tdbPool, err := sql.Open(\"mysql\", dbURI)\n \tif err != nil {\n \t\treturn nil, fmt.Errorf(\"sql.Open: %w\", err)\n \t}\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)."]]