6

OS X Lion で MAMP2、rvm を使用していますが、Rails アプリで mysql2 gem を動作させる方法がありません。

このブログ投稿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 をインストールしようとして多数のエラーが発生した後、ここで完全に行き詰まりました。

MAMP 2.0.3 と Rails 3.0.7 を搭載した OS X Lion で RVM と ruby​​-1.9.2-p290 を使用しています。

どんな助けでも大歓迎です!

4

3 に答える 3

13

この問題は、mysql-connector-c をアンインストールし、作成した 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 のインストールです。

この記事に従って、homebrew を使用して mysql をインストールします。それは非常に簡単で、インストール時間を含めてセットアップに約 10 ~ 15 分かかります。

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

brew を使用して mysql をインストールする際の注意事項。mysqlをインストールして成功すると、大量の情報が吐き出されます。他のすべてのジャンクの中に1〜2行の命令、貼り付けなどがあるため、慎重に調べる必要があります...

私のセットアップ:

現在、私のセットアップでは、wordpress サイトなどの単純なことを行うときに MAMP (/sites ディレクトリ用) を使用しています。はい、同時に実行できます。私のプロジェクトでは、Rails アプリ、静的な HTML ランディング ページ、およびいくつかの古い php プロジェクトの間を行き来する必要があり、2 つの mysql インストールを持つ分離が気に入っているため、このセットアップを使用しています。

于 2011-09-27T20:02:56.360 に答える