You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby DBI连接MariaDB失败:无法加载驱动问题求助

Ruby DBI连接MariaDB报错:uninitialized constant DBI::DBD::MariaDB 的解决方法

问题根源

你参考的教程内容过时了——Ruby DBI并没有单独的MariaDB驱动模块,MariaDB兼容MySQL协议,需要复用MySQL的DBI驱动(dbd-mysql)。你仅安装了dbi和mysql2,缺少关键的dbd-mysql gem,导致DBI无法找到对应的驱动实现。

解决步骤

  1. 清理冗余的dbi版本
    多个dbi版本可能引发冲突,先卸载多余版本,保留一个稳定版:

    gem uninstall dbi
    

    执行后按提示选择保留0.4.5版本即可。

  2. 安装DBI的MySQL/MariaDB驱动
    安装dbd-mysql gem,这是DBI连接MySQL/MariaDB的核心驱动:

    gem install dbd-mysql
    
  3. 修正代码中的连接字符串
    不要指定MariaDB驱动,改用Mysql(或小写mysql),示例代码:

    require 'dbi'
    
    begin
      # 替换为你的数据库信息
      dbh = DBI.connect('DBI:Mysql:your_database:localhost', 'your_username', 'your_password')
      puts "连接成功"
      # 执行数据库操作...
    rescue DBI::DatabaseError => e
      puts "错误代码: #{e.err}"
      puts "错误信息: #{e.errstr}"
    ensure
      dbh.disconnect if dbh
    end
    

替代方案(更推荐)

dbi gem已多年未维护,更稳定的选择是直接使用你已安装的mysql2 gem,它是专门为MySQL/MariaDB设计的现代驱动,示例代码:

require 'mysql2'

client = Mysql2::Client.new(
  host: 'localhost',
  username: 'your_username',
  password: 'your_password',
  database: 'your_database'
)

# 查询示例
client.query('SELECT * FROM your_table').each do |row|
  puts row.inspect
end

内容的提问来源于stack exchange,提问作者Niski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:52:25