6

我在 OS X Lion 上使用 MAMP2、rvm,我无法让 mysql2 gem 与我的 Rails 应用程序一起使用。

我关注了这篇博文 http://blog.mirotin.net/35/mamp-1-9-5-mysql-5-5-9-and-ruby-mysql2和这篇博文http://www.pa -ket.com/blog/show/12-osx-ruby-mysql2-gem-python-mysqldb-using-mamp

这些是步骤:

$ cd /tmp
$ mv /Users/yourname/Desktop/mysql-5.5.9.tar.gz .
$ tar xf mysql-5.5.9.tar.gz
$ cd mysql-5.5.9
$ brew install cmake
$ cmake . -DMYSQL_UNIX_ADDR=/Applications/MAMP/tmp/mysql/mysql.sock -DCMAKE_INSTALL_PREFIX=/Applications/MAMP/Library

此步骤失败:

$ make -j 3

在 /tmp/mysql-5.5.9/CMakeFiles/Makefile2 'make -j 3' 中对 'my_atomic-t.dir' 的单元测试进行评论后,一切正常。

$ cp libmysql/*.dylib /Applications/MAMP/Library/lib/
$ mkdir -p /Applications/MAMP/Library/include/mysql
$ cp include/* /Applications/MAMP/Library/include/mysql
$ env ARCHFLAGS="-arch x86_64" gem install mysql2 -v 0.2.11 -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config
Building native extensions.  This could take a while...
Successfully installed mysql2-0.2.11
1 gem installed
Installing ri documentation for mysql2-0.2.11...
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.2.11...
Enclosing class/module 'mMysql2' for class Client not known

我猜“客户未知”警告并不重要。
最后一步:

install_name_tool -change /tmp/mysql-5.5.9/libmysql/libmysqlclient.16.dylib /Applications/MAMP/Library/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p290@global/gems/mysql2-0.2.11/ext/mysql2/mysql2.bundle

我在启动 Rails 服务器时遇到的错误:

$ rails server
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[FATAL] failed to allocate memory

我只是无法设置那个 mysql2 gem,我已经尝试了好几个星期。在尝试安装 mysql2 gem 出现无数错误之后,这就是我完全陷入困境的地方。

我在带有 MAMP 2.0.3 和 Rails 3.0.7 的 OS X Lion 上使用 RVM 和 ruby​​-1.9.2-p290。

非常感谢任何帮助!

4

3 回答 3

13

我解决了这个问题,卸载 mysql-connector-c 并使用 brewed mysql 服务器的 include 和 lib 标志重新编译 mysql2 gem。

$ brew uninstall mysql-connector-c
$ gem uninstall mysql2
$ gem install mysql2 -- --with-mysql-include=/usr/local/Cellar/mysql/5.5.19/include --with-mysql-lib=/usr/local/Cellar/mysql/5.5.19/lib

http://abisso.org/2012/03/failed-to-allocate-memory/

于 2012-03-04T15:08:59.840 回答
4

您不应该为此使用 MAMP。

我读了你正在尝试做的事情。你的问题不是 mysql2 gem。你的问题是你安装了mysql。

按照这篇展示使用自制软件安装 mysql 的文章。它非常简单,大约需要 10-15 分钟,包括安装时间。

http://blog.theablefew.com/very-simple-homebrew-mysql-and-rails

使用 brew 安装 mysql 的旁注。安装mysql并成功后,它会吐出大量信息,您需要仔细查看它,因为所有其他垃圾中有1-2行是指令,粘贴一些东西等......

我的设置:

目前在我的设置中,我在做简单的事情(如 wordpress 网站等)时有 MAMP(用于我的 /sites 目录)......然后我有我的自制安装 mysql for rails(最终我切换到 sqlite/pg for heroku)。是的,我可以同时运行它们。我有这个设置是因为我的项目需要我在 rails 应用程序、静态 html 登录页面和一些较旧的 php 项目之间来回切换,而且我喜欢安装 2 个 mysql 的分离。

于 2011-09-27T20:02:56.360 回答
0

Try adding this to your Gemfile:

gem 'mysql2', < '0.3'

I made a post about a similar problem a while back. You can view the answer here:

Cannot run migrations due to MySQL error

于 2011-09-21T01:04:37.297 回答