mysql2 connection to seekdb sample program
This topic describes how to build an application using mysql2 and seekdb to perform basic operations such as creating tables, inserting data, and querying data.
Prerequisites
- You have installed Ruby and RubyGems.
- You have installed seekdb.
Procedure
- Check the versions of Ruby and RubyGems.
- Install the required gem.
- Obtain the seekdb connection information.
- 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 gem
Run the following command to install the mysql2 gem:
gem install mysql2
Step 3: Obtain the seekdb connection information
Contact the seekdb deployment personnel or administrator to obtain the database connection string.
mysql -h$host -P$port -u$user_name -p$password -D$database_name
Parameters:
$host: the IP address for connecting to seekdb.$port: the port for connecting to seekdb.$database_name: the name of the database to be accessed.$user_name: the account for connecting to seekdb.$password: the password for the account.
Step 4: Create a sample program
-
Create a configuration file named
config.rb:PASSWORD = ENV['OB_PASSWORD'] || 'your_password'
CLIENT_CONFIG = {
host: 'your_host',
port: your_port,
username: 'your_username',
password: PASSWORD,
all_databases: true
} -
Create a sample program named
main.rb:require 'mysql2'
require_relative 'config'
# Create a connection
client = Mysql2::Client.new(CLIENT_CONFIG)
# Create a database
db_name = "ruby_test_db"
client.query("CREATE DATABASE IF NOT EXISTS #{db_name}")
client.query("USE #{db_name}")
puts "Database '#{db_name}' selected"
# Create a table
client.query("DROP TABLE IF EXISTS users")
client.query("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|
client.query("INSERT INTO users (name) VALUES ('#{name}')")
end
puts "Table created and sample data inserted successfully"
puts "Inserted #{sample_names.length} sample records"
# Query and display all data
results = client.query("SELECT * FROM users")
puts "\nUsers:"
results.each do |row|
puts "#{row['id']}: #{row['name']} (created: #{row['created_at']})"
end
# Close the connection
client.close
Step 5: Run the sample program
-
Run the program:
ruby main.rbExpected output:
Database 'ruby_test_db' selected
Table created and sample data inserted successfully
Inserted 4 sample records
Users:
1: Alice (created: 2025-05-20 17:56:22 +0800)
2: Bob (created: 2025-05-20 17:56:22 +0800)
3: Charlie (created: 2025-05-20 17:56:22 +0800)
4: David (created: 2025-05-20 17:56:22 +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 permission-related errors, ensure that the user has sufficient permissions to perform the required operations.
-
SQL syntax error: If there is a syntax error in the SQL statement, check whether the syntax of the SQL statement is correct.
Performance optimization recommendations
- Use a connection pool to manage database connections.
- Use prepared statements.
- Set the query timeout appropriately.
- Use batch operations to improve performance.