【问题标题】:uninitialized constant MysqlCompat::MysqlRes with RubyMine使用 RubyMine 的未初始化常量 MysqlCompat::MysqlRes
【发布时间】:2011-07-20 02:17:30
【问题描述】:

我在通过 RubyMine 3.1 运行开发环境时遇到此错误。 mysql gem 已附加,它正在运行 Bundler。

宝石文件

gem "mysql",         "2.8.1"

Gem 是使用以下方式安装的:

gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

via Bundler config.

=> 启动 WEBrick
=> Rails 2.3.10 应用程序开始于 http://0.0.0.0:3000 [2011-03-21
13:36:43] 信息 WEBrick 1.3.1
[2011-03-21 13:36:43] INFO ruby​​ 1.8.7
(2011-02-18) [i686-darwin10.7.1]
[2011-03-21 13:36:43] 信息
WEBrick::HTTPServer#start: pid=625
端口=3000
=> 使用 -d 调用以分离
=> Ctrl-C 关闭服务器 /!\ FAILSAFE /!\ Mon Mar 21 13:36:46
-1000 2011 状态:500 内部服务器错误未初始化常量
MysqlCompat::MysqlRes

系统正在使用 RVM、gemset 和 ruby​​ 1.8.7、rails 2.3.10 和 mysql 5.5.10

我可以通过终端很好地运行 Rails 控制台和服务器

ruby script/server
ruby script/console

问题似乎与尝试通过 RubyMine 运行 Rails 控制台和服务器无关。可能有一些小的配置设置我遗漏了并且没有看到。

RubyMine 被配置为使用 RVM 中的 ruby​​ 和 gemset,它也被设置为忽略全局 gemset。

我见过的大多数解决方案都降级到 mysql 5.1,但这似乎不是真正的解决方案,因为我可以从终端完美地运行 Rails 控制台和服务器。

【问题讨论】:

标签: mysql ruby-on-rails rubymine


【解决方案1】:

我和 John Wang 谈过,他告诉了我,但一直在处理这个问题。

RubyMine 是一个 GUI,因此它不会获取为 OS X 中的终端定义的环境设置。请参阅此 Jetbrains 文档以更好地了解其工作原理:http://devnet.jetbrains.net/docs/DOC-1160

用于更改环境变量的工具的链接在上面的链接中是错误的。我使用了以下内容: http://www.epikentros.net/Main/Mac_Software.html

您需要确保在终端(~/.profile 或 ~/.bash_profile)和 OS X GUI(使用上面链接中提供的工具)上都设置了 DYLD_LIBRARY_PATH(需要有 mysql lib 目录在此处定义)和 PATH(将已为终端定义的值复制到 OS X GUI)

这应该可以解决问题。如果您有任何其他问题,请检查您是否使用相同的 MySQL 架构和 MySQL Gem(i386 或 x86_64)

【讨论】:

    【解决方案2】:

    刚刚遇到一个非常相似的问题:

    • OSX 豹
    • MySQL 5.1
    • Rails 2.3.11

    script/console 和 script/server 工作正常,但我的规格出错了

    未初始化的常量 MysqlCompat::MysqlRes

    解决方案似乎是使用mysql2而不是mysql。不要忘记更改database.yml中的连接适配器

    【讨论】:

    • 我无法切换到 mysql2 gem。 mysql gem 在终端上运行良好。那里没有问题。我可以通过终端做任何我需要的事情。我确实找到了答案。将在下面发布。
    猜你喜欢
    • 2011-07-14
    • 2010-11-22
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多