本記事では、Go-SQL-Driver/MySQLドライバーを使用してOB Cloudデータベースに接続する方法について説明します。
前提条件
OB Cloudデータベースアカウントに登録済みで、クラスタインスタンスとOB Cloud MySQLテナントを作成していること。詳細については、クラスタインスタンスの作成およびテナントの作成をご参照ください。
本記事で使用されているサンプルプロジェクトをダウンロード済みであること。
操作手順
説明
本記事ではmacOSを使用して操作します。他のOS環境やコンパイラを使用している場合は、手順が若干異なる場合があります。
ステップ1:(オプション) Go言語とドライバーのインストール
Go言語とGo-SQL-Driver/MySQLドライバーが既にインストール済みの場合は、このステップをスキップできます。インストールされていない場合は、以下の手順に従ってインストールしてください。
Go言語のインストール
Go公式サイトからGo言語のインストーラーをダウンロードし、インストールします。
説明
本記事で使用しているGoのインストーラーはgo1.22.2.darwin-amd64.pkgです。
環境変数の設定:Go言語のインストールパスをシステムのPATH環境変数に追加します。
LinuxまたはmacOS環境では、
~/.bashrcまたは~/.bash_profileファイルを編集し、以下の内容を追加します:export PATH=$PATH:/usr/local/go/binWindows環境では、コントロールパネル > システムとセキュリティ > システム > 詳細なシステム設定 > 環境変数 > システム変数 でPathの値に
C:\usr\local\go\binを追加します。
説明
\usr\local\go\binはデフォルトのインストールディレクトリです。Go言語のインストール時にインストールディレクトリを変更した場合は、対応するディレクトリに置き換えてください。コマンドラインツールで以下のコマンドを入力し、Go言語のバージョン情報を確認して、インストールが成功したかどうかを確認します:
go version実行結果の例:
go version go1.22.2 darwin/amd64
Go-SQL-Driver/MySQLドライバーのインストール。
Go言語のバージョンに応じて、異なるインストール方法を選択できます。Go-SQL-Driver/MySQLドライバーをインストールする際は、まず対応するプロジェクトディレクトリに移動する必要があります。本記事のサンプルプロジェクトを例にすると、
go-oceanbaseフォルダ内にドライバーをインストールする必要があります。Go-SQL-Driver/MySQLの詳細については、Githubをご参照ください。インストールコマンドは以下のとおりです:
cd go-oceanbase go get -u github.com/go-sql-driver/mysqlバージョンやネットワークの問題で
go getコマンドでインストールできない場合は、go installコマンドでgo-sql-driver/mysqlをインストールできます。go/srcディレクトリで、GitHubのgo-sql-driver/mysqlリポジトリをクローンします。cd /usr/local/go/src git clone https://github.com/go-sql-driver/mysql.git注意
/usr/local/go/srcは、Goが実際にインストールされているディレクトリに置き換えて操作してください。go installでインストールします。go install mysql注意
一部のバージョンでは、
go installのデフォルトの実行ディレクトリが/srcではない場合があります。go install実行後のエラーから実際のディレクトリを判断できます。例えば、cannot find package "mysql" in: /usr/local/go/src/vendor/mysqlというエラーが発生した場合は、mysqlフォルダを/src/vendorディレクトリに配置してからインストールコマンドを再実行してください。Go-SQL-Driver/MySQLドライバがインストールされているか確認します。インストールに失敗した場合は、エラーメッセージに従って修正してください。
go list -m github.com/go-sql-driver/mysql
ステップ2:OB Cloudデータベース接続文字列を取得する
OB Cloudデータベースコンソールにログインします。クラスターリストページで、対象クラスターの情報を展開し、対象テナントで**接続**をクリックします。

ポップアップウィンドウで、**パブリックネットワークを使用**を選択します。
**パブリックIPアドレスを使用してデータベースに接続**ページで以下の設定を完了し、接続文字列を生成します:
パラメータ説明IPアドレスを追加 追加 をクリックし、エグジットIPアドレスをホワイトリストに追加します。 証書をダウンロード (オプション)証書をダウンロード をクリックして、CA証書をダウンロードし、認証を完了します。 テナントへの接続 データベース ドロップダウンリストから選択し、+ データベースを作成 をクリックして、表示された手順に従ってデータベースの作成を完了します。 アカウント ドロップダウンリストから選択し、+ アカウントを作成 をクリックして、表示された手順に従ってアカウントの作成を完了します。 接続方式 接続方式として MySQL CLI を選択します。 注意
アカウント作成後、作成時に生成されたパスワードを適切に保管してください。
ステップ3:go-oceanbase サンプルプロジェクトのデータベース接続情報を修正する
ステップ2:OB Cloudクラウドデータベースの接続文字列を取得するで取得した接続文字列情報に基づき、test.go ファイル内の以下の内容を修正して保存します:
conn := "user_name:password@tcp(host:port)/schema_name"
// データベース接続パラメータ
- user_name:接続文字列の
-uパラメータから取得したアカウント名。 - password:接続文字列の
-pパラメータから取得したアカウントのパスワード。 - host:接続文字列の
-hパラメータから取得したOB Cloudクラウドデータベースの接続アドレス。 - port:接続文字列の
-Pパラメータから取得したOB Cloudクラウドデータベースの接続ポート。 - schema_name:
testに変更します。アクセスするスキーマ名はtestです。
例:
conn := "testaccount:111****QW@tcp(t5******.aws-ap-southeast-1.oceanbase.cloud:3306)/test"
ステップ4:go-oceanbase サンプルプロジェクトを実行する
コードの編集が完了したら、go-oceanbase フォルダ内で以下のコマンドを使用してサンプルプロジェクトを実行します。
go run test.go
実行後、以下の内容が返された場合は、データベース接続に成功し、サンプルステートメントが正しく実行されたことを意味します。
success to connect OceanBase with go_mysql driver
Hello OceanBase
説明
この内容は、「テーブルt1を削除」を実行した後の結果をマスクしたものです。
関連ドキュメント
Go-SQL-Driver/MySQLに関する情報は、OceanBaseデータベースのオープンソースコミュニティにも多数あります。詳細については、Go-SQL-Driver/MySQLをご参照ください。
go-oceanbase サンプルプロジェクトをダウンロード