无法在Lion,Rails3应用程序上使用mysql2 gem与MAMP2和RVM一起使用

我在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中对’my_atomic-t.dir’进行unit testing后,make -j 3’就行了。

 $ 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 

我只是不能设置mysql2gem,我已经尝试了几个星期。 在尝试安装mysql2 gem之后出现了很多错误,这就是我完全陷入困境的地方。

我在OS X Lion上使用RVM和ruby-1.9.2-p290,使用MAMP 2.0.3和Rails 3.0.7。

非常感谢任何帮助!

我解决了这个问题卸载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/

你不应该使用MAMP。

我读了你要做的事。 你的问题不是mysql2的gem。 你的问题是你的mysql安装。

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

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

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

我的设置:

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

尝试将此添加到您的Gemfile:

 gem 'mysql2', < '0.3' 

我不久前发了一篇关于类似问题的post。 你可以在这里查看答案:

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