2

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

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

耙中止!
Mysql:Class 的未定义方法“init”

我在某处读到在 Gemfile 和 mysql2 中使用 gem 'mysql2' 作为数据库适配器可能会解决问题。我试过这样做,但没有奏效。需要注意的一件事是 mysql 不在我的 PATH 变量中的任何位置,因此在终端中键入“mysql”会将我带到 /var/_mysql,这有点奇怪。

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

谢谢。

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

4

2 回答 2

4

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

首先,从 mysql 网站下载与您的 OS X 版本相对应的 OS X DMG 文件。您将需要安装 mysql,然后是启动项,最后是首选项面板(所有 3 个都在 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'

< 0.3 是必需的,否则会引发一些奇怪的错误。(对不起,我没有保存堆栈跟踪)。最后一步是将数据库适配器更改为 mysql2。我希望这可以帮助某人省去很多头痛:)

于 2011-08-25T02:13:52.673 回答
-1

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

于 2011-08-24T20:17:29.517 回答