【问题标题】:Cannot run migrations due to MySQL error由于 MySQL 错误,无法运行迁移
【发布时间】:2011-11-02 23:59:18
【问题描述】:

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

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

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

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

我需要将“/usr/local/mysql/bin”添加到我的路径变量吗?如果是这样,我该如何在 OS X 中做到这一点?

谢谢。

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

【问题讨论】:

    标签: mysql ruby-on-rails ruby-on-rails-3 osx-lion mysql2


    【解决方案1】:

    为了解决这个问题,我最终使用了 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'
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的建议,但我发现从 mysql 网站安装 DMG 是一个更好的选择。我最终使用了 mysql2,因为很多人都建议这样做并且它最终工作了。感谢您的意见。
      猜你喜欢
      • 2019-04-28
      • 1970-01-01
      • 2016-02-02
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多