本記事では、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に変更します。アクセスするSchema名は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サンプルプロジェクトをダウンロード