Не удается заставить gem mysql2 работать с MAMP2 и RVM в приложении Lion, Rails3 - PullRequest
6 голосов
/ 20 сентября 2011

Я использую MAMP2, rvm на OS X Lion, и я никак не могу заставить gem mysql2 работать с моим приложением 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

После комментирования модульных тестов для 'my_atomic-t.dir' в /tmp/mysql-5.5.9/CMakeFiles/Makefile2 '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 я полностью застрял.

Я использую RVM и ruby-1.9.2-p290 на OS X Lion с MAMP 2.0.3 и Rails 3.0.7.

Любая помощь очень приветствуется!

Ответы [ 3 ]

13 голосов
/ 04 марта 2012

Я решил эту проблему, удалив mysql-connector-c и перекомпилировав гем mysql2 с помощью флагов include и lib с созданного сервера mysql.

$ 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/

4 голосов
/ 28 сентября 2011

Вы не должны использовать MAMP для этого.

Я прочитал, что вы пытаетесь сделать.Ваша проблема не в драгоценном камне mysql2.Ваша проблема заключается в установке mysql.

Следуйте этой статье, показывающей использование homebrew для установки mysql.Это очень просто и занимает около 10-15 минут, включая время установки, чтобы настроить его.

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

Примечание с использованием brew для установки mysql.После того, как вы установите mysql, и он преуспеет, он выдаст тонну информации, и вам нужно внимательно посмотреть на нее, потому что среди всего прочего мусора есть 1-2 строки, которые являются инструкциями, вставкой некоторых вещей и т. Д.

Моя настройка:

В настоящее время в моей настройке у меня есть MAMP (для моего каталога / sites), когда я выполняю такие простые вещи, как WordPress сайты и т. Д ... Затем у меня есть моя домашняя установка mysql для rails (в конце концов я переключился на sqlite / pg для heroku).Да, я могу запустить их одновременно.У меня есть эта настройка, потому что мои проекты требуют, чтобы я переключался между приложениями rails, статическими html целевыми страницами и несколькими более старыми php-проектами, и мне нравится разделение с двумя установками mysql.

0 голосов
/ 21 сентября 2011

Попробуйте добавить это в свой Gemfile:

gem 'mysql2', < '0.3'

Я недавно опубликовал сообщение о подобной проблеме. Вы можете посмотреть ответ здесь:

Невозможно запустить миграцию из-за ошибки MySQL

...