4

DataMapperと一緒にJRuby1.7.2を使用していますが、答えが見つからないというエラーが発生します。

DataMapperとMySQL5.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を設定しています。

4

4 に答える 4

7

JDBCこれは、 のクライアントを実行しているときによくあるエラーですMySQLmysql-connector-java-bin.jarクラスパスにあることを確認する必要があります。ここからダウンロードできます。

于 2013-01-10T18:21:24.680 に答える
7

私はRails 3.2.9を使用しています。問題を解決するために、これをapplication.rbに追加しました

if defined? JRUBY_VERSION
    require 'jdbc/mysql'
    Jdbc::MySQL.load_driver
end
于 2013-02-02T06:31:04.607 に答える
2

実際、正解は5.1.135.1.22の間の非互換性を回避することです!

jdbc-mysql gem には既に mysql-connector.jar が含まれており、もはや自動ロードされません:

https://github.com/jruby/activerecord-jdbc-adapter/tree/master/jdbc-mysql (README を読む)

コマンドラインなどからJavaシステムプロパティを使用して、ドライバーを強制的に自動ロードすることもできます。

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

于 2013-01-17T08:31:41.040 に答える
0

jruby/rails4 から mysql データベースを使用しようとすると、同じエラーが発生しました。私の場合、次の行が ./Gemfile にありませんでした:

gem 'jdbc-mysql'
于 2014-09-03T21:16:38.943 に答える