由于MySQL错误导致无法运行迁移

时间:2011-08-24 16:48:17

标签: ruby-on-rails ruby-on-rails-3 mysqli osx-lion

我一直在尝试在OS X上安装我的开发环境几天,而且我在使用mysql时遇到了很多麻烦。我已经通过mysql网站提供的dmg文件安装了mysql。这解决了我遇到的大部分麻烦。

我目前的问题是,当我运行“rake db:migrate”时,我收到以下错误:

  耙子流产了!
  mysql的未定义方法`init':Class

我读到某处使用Gemfile中的gem'mysql2'和mysql2作为数据库适配器可能会解决问题。我试过这样做,但它没有用。有一点需要注意的是mysql不在我的PATH变量中的任何地方,所以在终端输入'mysql'会把我带到/ var / _mysql,这有点奇怪。

我是否需要在路径变量中添加'/ usr / local / mysql / bin'?如果是这样,我该如何在OS X中执行此操作?

感谢。

编辑:我将/ usr / local / mysql / bin添加到我的路径中,仍然有相同的错误。

2 个答案:

答案 0 :(得分:4)

为了解决这个问题,我最终使用了mysql2 gem而不是mysql gem。这个过程根本不是直截了当的,所以我想发布我采取的确切步骤,以防有人以后需要帮助。

首先,从mysql网站下载与您的OS X版本对应的OS X DMG文件。您将需要安装mysql,然后是启动项,最后是首选项面板(所有这三个都在DMG文件中)。

接下来,您需要将mysql添加到路径变量中。我相信您可以编辑/ etc / paths或将新文件添加到/etc/paths.rd/,但我最终修改了终端的配置文件。我在〜/ .zshrc中添加了以下行(这只适用于zsh,如果使用bash,则文件类似于〜/ .bashrc):

export PATH=[path:variables]:/usr/local/mysql/bin
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/"

[path:variables]只是所有其他路径变量的占位符。第二行是使mysql2 gem工作所需的东西。第二行允许mysql查找所需的库文件。

接下来,替换或添加

gem 'mysql' 

gem 'mysql2', '< 0.3'

&lt;需要0.3,否则会抛出一些奇怪的错误。 (对不起,我没有保存堆栈跟踪)。最后一步是将数据库适配器更改为mysql2。我希望这可以帮助别人避免很多头痛:)

答案 1 :(得分:-1)

我建议您完全卸载MySQL和MySQL gem。然后安装Homebrew包管理器并使用Homebrew安装MySQL。之后安装宝石。在许多情况下,Homebrew将使您的生活更轻松。如果您对C库的安装不太自信,那么特别有用。