找不到指定的模块(MySQL)

时间:2011-08-29 15:58:05

标签: ruby-on-rails ruby gem rake rdoc

如何在Windows上跟踪错误:

C:\work\exchange2>gem list

*** LOCAL GEMS ***

actionmailer (2.3.11)
actionpack (2.3.11)
activerecord (2.3.11)
activeresource (2.3.11)
activesupport (2.3.11)
mysql (2.8.1 x86-mingw32)
rack (1.1.2)
rails (2.3.11)
rake (0.9.2)


C:\work\exchange2>rake db:migrate
rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install
the mysql gem and try again: gem install mysql.
rake aborted!
126: The specified module could not be found.   - C:/Ruby187/lib/ruby/gems/1.8/g
ems/mysql-2.8.1-x86-mingw32/lib/1.8/mysql_api.so

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

UPDATE2: 我使用Mysql server 5.5,其中我在/ lib目录中找到了libmql文件,所以我将该文件粘贴在ruby / bin以及ruby / lib中。 在cmd上我得到了同样的错误。

UPDATE1:再次运行,我得到了:

  

C:\ work \ exchange2> gem install mysql已成功安装   mysql-2.8.1-x86-mingw32安装1个gem安装ri文档   对于mysql-2.8.1-x86-mingw32 ...

     

没有next_result的定义

     

没有field_name的定义

     

没有field_table的定义

     

没有field_def的定义

     

没有field_type的定义

     

没有field_length的定义

     

没有field_max_length的定义

     

没有field_flags的定义

     

没有field_decimals的定义

     

没有time_inspect的定义

     

没有time_to_s的定义

     

没有time_get_year的定义

     

没有time_get_month的定义

     

没有time_get_day的定义

     

没有time_get_hour的定义

     

没有time_get_minute的定义

     

没有time_get_second的定义

     

没有time_get_neg的定义

     

没有time_get_second_part的定义

     

没有time_set_year的定义

     

没有time_set_month的定义

     

没有time_set_day的定义

     

没有time_set_hour的定义

     

没有time_set_minute的定义

     

没有time_set_second的定义

     

没有time_set_neg的定义

     

没有time_set_second_part的定义

     

没有time_equal的定义

     

没有error_errno的定义

     

没有为error_sqlstate定义为。安装RDoc文档   的MySQL-2.8.1 86的mingw32 ...

     

没有next_result的定义

     

没有field_name的定义

     

没有field_table的定义

     

没有field_def的定义

     

没有field_type的定义

     

没有field_length的定义

     

没有field_max_length的定义

     

没有field_flags的定义

     

没有field_decimals的定义

     

没有time_inspect的定义

     

没有time_to_s的定义

     

没有time_get_year的定义

     

没有time_get_month的定义

     

没有time_get_day的定义

     

没有time_get_hour的定义

     

没有time_get_minute的定义

     

没有time_get_second的定义

     

没有time_get_neg的定义

     

没有time_get_second_part的定义

     

没有time_set_year的定义

     

没有time_set_month的定义

     

没有time_set_day的定义

     

没有time_set_hour的定义

     

没有time_set_minute的定义

     

没有time_set_second的定义

     

没有time_set_neg的定义

     

没有time_set_second_part的定义

     

没有time_equal的定义

     

没有error_errno的定义

     

没有error_sqlstate的定义

2 个答案:

答案 0 :(得分:2)

您应该尝试运行gem install mysql,这应该清除有关此内容的错误消息:

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install
the mysql gem and try again: gem install mysql.
rake aborted!
126: The specified module could not be found.   - C:/Ruby187/lib/ruby/gems/1.8/g
ems/mysql-2.8.1-x86-mingw32/lib/1.8/mysql_api.so

关于rdoc的错误有点难以诊断,但是我认为它在你的Rakefile中有几行,如果你看到一些类似于以下的行:

require 'rake/rdoctask'
Rake::RDocTask.new(:rdoc) do |rdoc|

尝试将它们更改为:

require 'rdoc/task'
RDoc::Task.new do |rdoc|

答案 1 :(得分:1)

在我尝试在服务器上部署之前,我遇到了这个问题,我的问题是我没有设置 RAILS_ENV 环境变量。 所以你可以尝试使用:

进行设置
set RAILS_ENV=production