【问题标题】:The specified module could not be found (MySQL)找不到指定的模块(MySQL)
【发布时间】:2011-08-29 15:58:05
【问题描述】:

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)

更新 2: 我使用的是 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_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-x86-mingw32...

next_result 没有定义

field_name 没有定义

field_table 没有定义

field_def 没有定义

field_type 没有定义

字段长度没有定义

没有定义 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 没有定义

【问题讨论】:

  • 尝试安装 mysql gem。

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


【解决方案1】:

您应该尝试运行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|

【讨论】:

  • 您是否尝试再次运行该命令?安装gem的时候有没有异常输出?
  • 另外,如果您在C:\Program Files\MySQL\MySQL Server 5.1\bin 本地安装了mysql 服务器,那么您可能希望将文件libmysql.dll 复制到C:\Ruby187\bin,并通过代码格式将您在问题中获得的任何输出这样每个人都可以看到它。
  • 将该 dll 放在此文件夹中 C:/Ruby187/lib/ruby/gems/1.8/g ems/mysql-2.8.1-x86-mingw32/lib/1.8/
  • 由于您使用的是旧版本的 gem,请尝试使用不同的 dll instantrails.rubyforge.org/svn/trunk/InstantRails-win/…
  • @DevinM - 感谢您提供有关移动到 C:\Ruby193\bin 文件夹的提示,它为我解决了这个问题!
【解决方案2】:

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

set RAILS_ENV=production

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 2011-01-05
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    相关资源
    最近更新 更多