Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ruby connection to OceanBase #59

Closed
wants to merge 16 commits into from
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ jobs:
- name: 'springboot'
language: 'java'
with_oceanbase_container: true
- name: 'mysql2'
language: 'ruby'
with_oceanbase_container: true
uses: ./.github/workflows/basic-workflow.yml
with:
module: ${{ matrix.module.name }}
Expand Down
3 changes: 3 additions & 0 deletions ruby/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Introduction

Please add RUBY samples in this directory.
68 changes: 68 additions & 0 deletions ruby/mysql2/README-CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Ruby连接 OceanBase 指南(mysql2)

[English](README.md) | 简体中文

本文介绍如何通过 mysql2驱动连接 OceanBase 数据库。

## 快速开始

在开始之前,需要先确保 mysql2已安装。

安装命令

```
gem install mysql2
```

以 [example.rb](example.rb) 为例。

```python
require 'mysql2'

def connect_to_oceanbase(host, port, username, password, database)
begin
# 创建数据库连接
client = Mysql2::Client.new(
host: host,
port: port,
username: username,
password: password,
database: database
)

puts "连接到OceanBase数据库成功"

# 执行一个简单的查询
results = client.query("SELECT DATABASE();")

results.each do |row|
puts "连接到的数据库: #{row['DATABASE()']}"
end

# 你可以在这里执行其他的SQL查询或操作

client.close
puts "MySQL连接已关闭"

rescue Mysql2::Error => e
puts "连接到OceanBase数据库失败: #{e.error}"
end
end

if __FILE__ == $0
connect_to_oceanbase(
'127.0.0.1',
2881,
'root',
'password',
'test'
)
end

```

修改代码中的连接信息,之后你就可以直接使用命令行运行示例代码。

```bash
ruby example.rb
```
68 changes: 68 additions & 0 deletions ruby/mysql2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Ruby Connection OceanBase Guide (Mysql2)

English | [简体中文](README-CN.md)

This article introduces how to connect to OceanBase database through mysql2 driver.

## Quick Start

Before starting, it is necessary to ensure that mysql2 is installed.

Installation command

```
gem install mysql2
```

Taking [example.rb](example.rb) as an example.

```python
require 'mysql2'

def connect_to_oceanbase(host, port, username, password, database)
begin
# 创建数据库连接
client = Mysql2::Client.new(
host: host,
port: port,
username: username,
password: password,
database: database
)

puts "连接到OceanBase数据库成功"

# 执行一个简单的查询
results = client.query("SELECT DATABASE();")

results.each do |row|
puts "连接到的数据库: #{row['DATABASE()']}"
end

# 你可以在这里执行其他的SQL查询或操作

client.close
puts "MySQL连接已关闭"

rescue Mysql2::Error => e
puts "连接到OceanBase数据库失败: #{e.error}"
end
end

if __FILE__ == $0
connect_to_oceanbase(
'127.0.0.1',
2881,
'root',
'password',
'test'
)
end

```

Modify the connection information in the code, and then you can directly run the example code using the command line.

```bash
ruby example.rb
```
41 changes: 41 additions & 0 deletions ruby/mysql2/example.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
require 'mysql2'

def connect_to_oceanbase(host, port, username, password, database)
begin
# 创建数据库连接
client = Mysql2::Client.new(
host: host,
port: port,
username: username,
password: password,
database: database
)

puts "连接到OceanBase数据库成功"

# 执行一个简单的查询
results = client.query("SELECT DATABASE();")

results.each do |row|
puts "连接到的数据库: #{row['DATABASE()']}"
end

# 你可以在这里执行其他的SQL查询或操作

client.close
puts "MySQL连接已关闭"

rescue Mysql2::Error => e
puts "连接到OceanBase数据库失败: #{e.error}"
end
end

if __FILE__ == $0
connect_to_oceanbase(
'127.0.0.1',
2881,
'root',
'',
'test'
)
end
2 changes: 2 additions & 0 deletions ruby/mysql2/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
gem install mysql2
ruby example.rb
17 changes: 17 additions & 0 deletions ruby/sequel/example.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require 'sequel'

# 连接到OceanBase数据库
DB = Sequel.connect(
adapter: 'mysql2',
host: '127.0.0.1',
port: 2881,
user: 'root',
password: '',
database: 'test'
)

if DB.test_connection
puts "成功连接到OceanBase数据库"
else
puts "连接到OceanBase数据库失败"
end