すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase (Deprecated):Go MySQL Driver を使用して OceanBase データベースに接続する

最終更新日:Jan 19, 2025

このトピックでは、Go MySQL Driver を使用して OceanBase データベースに接続し、使用する方法について説明します。

前提条件

コンピューターに Go 環境がデプロイされていること。

Go MySQL Driver を使用してデータベースに接続する

手順 1: データベース接続パラメーターを取得する

詳細については、「接続パラメーターを取得する」をご参照ください。例:

$ obclient -hxxx.xxx.xxx.xxx -P3306 -u a**** -p****** -Dtest

データベース接続パラメーターは、データベースへのアクセスに必要な情報を指定します。サンプルコードで使用する前に、データベースにログオンしてデータベース接続パラメーターを確認できます。

オプション:

  • -h: 接続先の OceanBase データベースのドメイン名。

  • -P: OceanBase データベースに接続するためのポート。デフォルトでは、MySQL モードではポート 3306 です。

  • -u: テナントアカウント。

  • -p: アカウントパスワード。

  • -D: データベース名。

手順 2: Go-SQL-Driver/MySQL をインストールする

Go 言語のバージョンに基づいて、さまざまな方法を使用して Go MySQL Driver をインストールできます。

go get コマンドを実行する (Go 1.13 ~ 1.16 のみ)

Go 1.13 ~ 1.16 を使用している場合は、次のコマンドを実行して Go MySQL Driver をインストールできます。

$ go get -u github.com/go-sql-driver/mysql

Go-SQL-Driver/MySQL の詳細については、GitHub を参照してください。

go install コマンドを実行する

バージョンまたはネットワークの問題により go get コマンドを使用できない場合は、次の手順を実行して Go MySQL Driver をインストールできます。

  1. go/src ディレクトリに移動します。

    $ cd /usr/local/go/src 
    重要

    /usr/local/go/src は、Go 言語のインストールディレクトリに置き換える必要があります。

  2. Github から go-sql-driver/mysql リポジトリをクローンします。

    $ git clone https://github.com/go-sql-driver/mysql.git 
  3. go install コマンドを実行します。

    $ go install mysql
    重要

    一部の Go バージョンでは、/src ディレクトリで go install コマンドを実行できません。go install コマンドの実行後に報告されるエラーに基づいて、正しいディレクトリを特定できます。たとえば、cannot find package "mysql" in: /usr/local/go/src/vendor/mysql というエラーが報告された場合は、mysql フォルダーを /src/vendor ディレクトリに配置してから、go install コマンドを実行する必要があります。

手順 3: サンプルコードを記述する

次の test.go サンプルファイルは参考用です。

package main

import (
 "database/sql"
 "fmt"
 "log"
 
 _ "mysql" 
 // Go MySQL Driver のインストールパスを指定します。/src ディレクトリにインストールされている場合は、パスとして "mysql" を指定できます。
)

type Str struct {
 Name string
}

func main() {
 select_all()
 }

func select_all() {
 conn := "a****:******@tcp(xxx.xxx.xxx.xxx:3306)/test"
 db, err := sql.Open("mysql", conn)
 if err != nil {
 log.Fatal(err)
 }
 
 defer db.Close()
 
 if err != nil {
 log.Fatal(err)
 }
 fmt.Printf("success to connect OceanBase with go_mysql driver\n")
 // t1 という名前のテーブルを作成します。
 db.Query("create table t1(str varchar(256))") 
 // データを挿入します。
 db.Query("insert into t1 values ('Hello OceanBase')") 
 // データをクエリします。
 res, err := db.Query("SELECT * FROM t1")
 // t1 テーブルを削除します。
 db.Query("drop table t1") 
 if err != nil {
 log.Fatal(err)
 }
 
 defer res.Close()
 
 if err != nil {
 log.Fatal(err)
 }
 
 for res.Next() {
 
 var str Str
 res.Scan(&str.Name)
 fmt.Printf("%s\n", str.Name)
 }
}

コード内のデータベース接続パラメーターを変更します。次のパラメーターと形式を参照してください。パラメーター値は手順 1 で取得します。

conn := "{username}:{password}@tcp({hostname}:{port})/{dbname}"

パラメーター:

  • username: テナントアカウント。 -u オプションに対応します。

  • password: テナントアカウントのパスワード。 -p オプションに対応します。

  • hostname: 接続先の OceanBase データベースのドメイン名。 -h オプションに対応します。

  • port: OceanBase データベースに接続するためのポート。 -P オプションに対応します。デフォルトでは、MySQL モードではポート 3306 です。

  • dbname: データベース名。 -D オプションに対応します。

サンプルコード:

conn := "a****:******@tcp(xxx.xxx.xxx.xxx:3306)/test"

手順 4: サンプルコードを実行する

コードを編集した後、次のコマンドを実行します。

  1. Go パッケージの実際のインストールパスに従って、一時環境変数を構成します。

    $ export PATH=$PATH:/usr/local/go/bin
  2. コードを実行する

    1. go run コマンドを実行して go ファイルを実行します。

      $ go run test.go
    2. go build コマンドを実行してバイナリファイルを生成します。

      $ go build test.go

      test を実行します。

      $ ./test
  3. 次の結果が返された場合、データベースは接続され、サンプル文は正しく実行されています。

    success to connect OceanBase with go_mysql driver
    Hello OceanBase