Applicability
Sequel is applicable to OceanBase Database in MySQL mode.
This topic describes how to use Sequel and OceanBase Database to build an application that can perform basic operations such as creating tables, inserting data, and querying data.
Prerequisites
- You have installed Ruby and RubyGems.
- You have installed OceanBase Database and created a tenant in MySQL mode.
Procedure
- Check the versions of Ruby and RubyGems.
- Install the required gems.
- Obtain the connection information of OceanBase Database.
- Create a sample program.
- Run the sample program.
Step 1: Check the versions of Ruby and RubyGems
Open the terminal and run the following command to check the versions of Ruby and RubyGems:
ruby -v
gem -v
Step 2: Install the required gems
Run the following command to install Sequel and mysql2:
gem install sequel mysql2
Step 3: Obtain the connection information of OceanBase Database
Contact the deployment engineer or administrator of OceanBase Database to obtain the connection string.
mysql -h$host -P$port -u$user_name -p$password -D$database_name
Parameter description:
$host: the IP address for connecting to OceanBase Database.$port: the port for connecting to OceanBase Database.$database_name: the name of the database to be accessed.$user_name: the username of the tenant.$password: the password of the tenant.
Step 4: Create a sample program
Create a configuration file named
config.rb:PASSWORD = ENV['OB_PASSWORD'] || 'your_password' CLIENT_CONFIG = { adapter: 'mysql2', host: 'your_host', port: your_port, username: 'your_username', password: PASSWORD, all_databases: true }Create a sample program named
main.rb:require 'sequel' require 'sequel/adapters/mysql2' require File.expand_path('config.rb', __dir__) # Create a connection. db = Sequel.connect(CLIENT_CONFIG) # Create a database. db_name = "ruby_test_db" db.run("CREATE DATABASE IF NOT EXISTS #{db_name}") db.disconnect # Reconnect to the new database. CLIENT_CONFIG[:database] = db_name db = Sequel.connect(CLIENT_CONFIG) puts "Database '#{db_name}' selected" # Create a table. db.run("DROP TABLE IF EXISTS users") db.run("CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )") # Insert sample data. sample_names = ["Alice", "Bob", "Charlie", "David"] sample_names.each do |name| db.run("INSERT INTO users (name) VALUES ('#{name}')") end puts "Table created and sample data inserted successfully" puts "Inserted #{sample_names.size} sample records" # Query and display all data. results = db[:users] puts "\nUsers:" results.each do |row| puts "ID: #{row[:id]}, Name: #{row[:name]}, Created at: #{row[:created_at]}" end # Close the connection. db.disconnect
Step 5: Run the sample program
Run the program:
ruby main.rbExpected return result:
Database 'ruby_test_db' selected Table created and sample data inserted successfully Inserted 4 sample records Users: ID: 1, Name: Alice, Created at: 2025-05-21 15:20:06 +0800 ID: 2, Name: Bob, Created at: 2025-05-21 15:20:06 +0800 ID: 3, Name: Charlie, Created at: 2025-05-21 15:20:06 +0800 ID: 4, Name: David, Created at: 2025-05-21 15:20:06 +0800
FAQ
Connection error: If you cannot connect to the database, check the following:
- Whether the database address and port are correct
- Whether the username and password are correct
- Whether the network connection is normal
Permission error: If you encounter a permission-related error, make sure that the user has sufficient permissions to perform the required operations.
SQL syntax error: If the SQL statement has a syntax error, check the syntax of the SQL statement.
Performance optimization
- Use batch operations of Sequel.
- Use a connection pool to manage database connections.
- Use precompiled queries.
- Use cache reasonably.
- Optimize database indexes.
