跳到主要内容

mysql2 连接 seekdb 示例程序

本文将介绍如何使用 mysql2 和 seekdb 构建一个应用程序,实现创建表、插入数据和查询数据等基本操作。

前提条件

  • 您已安装 Ruby 和 RubyGems
  • 您已安装 seekdb

操作步骤

  1. 检查 Ruby 和 RubyGems 的版本
  2. 安装必要的 gem
  3. 获取 seekdb 连接信息
  4. 创建示例程序
  5. 运行示例程序

步骤一:检查 Ruby 和 RubyGems 的版本

打开终端,运行以下命令检查 Ruby 和 RubyGems 的版本:

ruby -v
gem -v

步骤二:安装必要的 gem

使用 gem 安装 mysql2:

gem install mysql2

步骤三:获取 seekdb 连接信息

联系 seekdb 部署人员或者管理员获取相应的数据库连接串。

mysql -h$host -P$port -u$user_name -p$password -D$database_name

参数说明:

  • $host:提供 seekdb 连接 IP
  • $port:提供 seekdb 连接端口
  • $database_name:需要访问的数据库名称
  • $user_name:提供 seekdb 的连接账户
  • $password:提供账户密码

步骤四:创建示例程序

  1. 创建配置文件 config.rb

    PASSWORD = ENV['OB_PASSWORD'] || 'your_password'

    CLIENT_CONFIG = {
    host: 'your_host',
    port: your_port,
    username: 'your_username',
    password: PASSWORD,
    all_databases: true
    }
  2. 创建示例程序 main.rb

    require 'mysql2'
    require_relative 'config'

    # 创建连接
    client = Mysql2::Client.new(CLIENT_CONFIG)

    # 创建数据库
    db_name = "ruby_test_db"
    client.query("CREATE DATABASE IF NOT EXISTS #{db_name}")
    client.query("USE #{db_name}")
    puts "Database '#{db_name}' selected"

    # 创建表
    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
    )")

    # 插入示例数据
    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"

    # 查询并显示所有数据
    results = client.query("SELECT * FROM users")
    puts "\nUsers:"
    results.each do |row|
    puts "#{row['id']}: #{row['name']} (created: #{row['created_at']})"
    end

    # 关闭连接
    client.close

步骤五:运行示例程序

  1. 运行程序:

    ruby main.rb

    预期返回结果:

    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)

常见问题

  1. 连接错误:如果无法连接到数据库,请检查:

    • 数据库地址和端口是否正确
    • 用户名和密码是否正确
    • 网络连接是否正常
  2. 权限错误:如果遇到权限相关的错误,请确保用户拥有足够的权限来执行所需的操作。

  3. SQL 语法错误:如果 SQL 语句有语法错误,请检查 SQL 语句的语法是否正确。

性能优化建议

  1. 使用连接池管理数据库连接
  2. 使用预编译语句(prepared statements)
  3. 合理设置查询超时时间
  4. 使用批处理操作提高性能