我在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'进行单元测试后,'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
我无法设置mysql2 gem并且我已经尝试了好几周。在尝试安装mysql2 gem之后出现了很多错误,这就是我完全陷入困境的地方。
我在OS X Lion上使用RVM和ruby-1.9.2-p290,使用MAMP 2.0.3和Rails 3.0.7。
任何帮助 非常 赞赏!
答案 0 :(得分: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
答案 1 :(得分:4)
你不应该使用MAMP。
我读了你要做的事。你的问题不是mysql2的宝石。你的问题是你安装了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 for heroku) 。是的,我可以同时运行它们。我有这个设置因为我的项目要求我在rails应用程序,静态html登陆页面和一些较旧的php项目之间跳转,我喜欢有2个mysql安装的分离。
答案 2 :(得分:0)
尝试将此添加到您的Gemfile:
gem 'mysql2', < '0.3'
我曾经发过一篇关于类似问题的帖子。你可以在这里查看答案: