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

Mir*_*rko 6 mamp ruby-on-rails rvm mysql2 osx-lion

我在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
Run Code Online (Sandbox Code Playgroud)

此步骤失败:

$ make -j 3
Run Code Online (Sandbox Code Playgroud)

在/tmp/mysql-5.5.9/CMakeFiles/Makefile2中对'my_atomic-t.dir'进行单元测试后,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
Run Code Online (Sandbox Code Playgroud)

我想"客户不知道"的警告并不重要.
最后一步:

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
Run Code Online (Sandbox Code Playgroud)

以及启动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
Run Code Online (Sandbox Code Playgroud)

我只是无法设置mysql2 gem并且我已经尝试了几周.在尝试安装mysql2 gem之后出现了很多错误,这就是我完全陷入困境的地方.

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

非常感谢任何帮助!

nol*_*ith 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
Run Code Online (Sandbox Code Playgroud)

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


Max*_*Max 0

尝试将其添加到您的 Gemfile 中:

gem 'mysql2', < '0.3'
Run Code Online (Sandbox Code Playgroud)

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

由于 MySQL 错误而无法运行迁移