Connect using Golang¶
MatrixOne Intelligence supports Golang connections and supports Go-MySQL-Driver.
This document will guide you through how to connect to MatrixOne Intelligence using Golang and Gorm.
Prepare before starting¶
MySQL Client has been installed. If you do not have it, you can click MySQL Client to the official website for download and installation.
Create instance has been completed.
[Golang version 1.18 and above] (https://go.dev/dl/) has been installed. If you do not have it, you can click [Golang version 1.18 and above] (https://go.dev/dl/) to download and install it. If you have installed it, you can use the following command line to check the version:
#Check Golang version number to confirm whether it is installed go version
The Git tool has been installed. If you do not have it, you can click Git to download and install it.
Connect to MatrixOne Intelligence Services with Golang¶
Go-MySQL-Driver is a MySQL driver for the Go language. It implements the database/sql interface method in the Go standard library, allowing Go language programs to connect and operate MySQL databases through this driver.
Install the
Go-MySQL-Drivertool:Install the
Go-MySQL-Driverpackage to your $GOPATH using Go Tool .You can also install the
Go-MySQL-Drivertool using the following command line:> go get -u github.com/go-sql-driver/mysql
Connect to MatrixOne Intelligence using the MySQL client. Create a new database with name test:
mysql> create database test;
Create a plain text file golang_connect_matrixonecloud.go and write the code to the file:
package main import ( "database/sql" "fmt" "net/url" "strconv" _ "github.com/go-sql-driver/mysql" ) func main() { username := "585b49fc_852b_4bd1_b6d1_d64bc1d8xxxx:admin:accountadmin" // modify this host := "freetier-01.cn-hangzhou.cluster.matrixonecloud.cn" // modify this password := "your_password" // modify this port := 6001 database := "test" encodedUsername := url.QueryEscape(username) dsn := encodedUsername + ":" + password + "@tcp(" + host + ":" + strconv.Itoa(port) + ")/" + database db, _ := sql.Open("mysql", dsn) // Set database connection defer db.Close() //Close DB err := db.Ping() //Connect to DB if err != nil { fmt.Println("Database Connection Failed") //Connection failed Return } else { fmt.Println("Database Connection Succeed") //Connection succeeded } }
Open a terminal and execute the following commands in the terminal:
> go run golang_connect_matrixonecloud.go Database Connection Succeed
Connect to MatrixOne Intelligence Services with Gorm¶
gorm is a magical full-featured ORM library based on golang. We will use the gorm.io/gorm and ``gorm.io/driver/mysql``` to connect Go to the MYSQL database.
Install the
gorm.io/gorm`` and ``gorm.io/driver/mysqllibrary, and use the ```go get`` command to install:go get -u gorm.io/gorm go get -u gorm.io/driver/mysql
Connect to MatrixOne Intelligence using the MySQL client. Create a new database with name test:
mysql> create database test;
Create a text file golang_gorm_connect_matrixonecloud.go and write the code to the file:
package main import ( "fmt" "net/url" "strconv" "gorm.io/driver/mysql" "gorm.io/gorm" ) func getDBConn() *gorm.DB { username := "585b49fc_852b_4bd1_b6d1_d64bc1d8xxxx:admin:accountadmin" // modify this host := "freetier-01.cn-hangzhou.cluster.matrixonecloud.cn" // modify this password := "your_password" // modify this port := 6001 database := "test" encodedUsername := url.QueryEscape(username) dsn := encodedUsername + ":" + password + "@tcp(" + host + ":" + strconv.Itoa(port) + ")/" + database db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) // get connection if err != nil { fmt.Println("Database Connection Failed") //Connection failed } else { fmt.Println("Database Connection Succeed") //Connection succeeded } return db } func main() { getDBConn() }
Open a terminal and execute the following commands in the terminal:
> go run golang_gorm_connect_matrixonecloud.go Database Connection Succeed
Reference Document¶
For an example of using Golang to build a simple CRUD through MatrixOne Intelligence, see Golang Basic Example.
For an example of using Gorm to build a simple CRUD through MatrixOne Intelligence, see Gorm Basic Example.