簡體   English   中英

NameError:無法加載Java類com.mysql.jdbc.Driver

[英]NameError: cannot load Java class com.mysql.jdbc.Driver

我正在使用JRuby 1.7.2,以及DataMapper,我收到一個錯誤,我找不到答案。

我只是測試DataMapper和MySQL 5.5,看看它是否會在我構建時運行良好。 這是我正在測試的文件:

require "data_mapper"
require "keys"

DataMapper.setup(:default, "mysql://#{$user}:#{$pass}@localhost/test_db")

當我運行這個時,我得到錯誤:

NameError: cannot load Java class com.mysql.jdbc.Driver

它指向DataMapper.setup行。

我的Gemfile應該沒問題:

source :rubygems

gem "sinatra"
gem "trinidad"
gem "data_mapper"

# do a `sudo apt-get install libmysqlclient-dev` first
gem "dm-mysql-adapter"
gem "jdbc-mysql"

有什么我想念的嗎? 我已經在本地設置了用戶/傳遞的MySQL。

在為MySQL運行JDBC客戶端時,這是一個常見錯誤。 您需要確保在類路徑上有mysql-connector-java-bin.jar 你可以從這里下載。

我正在使用Rails 3.2.9並解決了我在application.rb中添加的問題

if defined? JRUBY_VERSION
    require 'jdbc/mysql'
    Jdbc::MySQL.load_driver
end

實際上,正確的答案是解決5.1.135.1.22之間的不兼容問題!

jdbc-mysql gem已經包含了mysql-connector.jar,它只是不再自動加載:

https://github.com/jruby/activerecord-jdbc-adapter/tree/master/jdbc-mysql (閱讀README)

您還可以使用Java系統屬性強制驅動程序自動加載,例如從cmd行:

jruby -J-Darjdbc.mysql.autoload=true -S rake ...

嘗試使用jruby / rails4中的mysql數據庫時遇到了同樣的錯誤。 在我的情況下,。/ Gemfile中缺少這一行:

gem 'jdbc-mysql'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM