2011-09-20 11 views
6

Używam MAMP2, rvm na OS X Lion i nie ma sposobu, aby uzyskać klejnot mysql2 do pracy z moją aplikacją Rails.Nie można uzyskać gem mysql2 do pracy z MAMP2 i RVM na Lion, Rails3 app

I już po tym blogu http://blog.mirotin.net/35/mamp-1-9-5-mysql-5-5-9-and-ruby-mysql2 i ten http://www.pa-ket.com/blog/show/12-osx-ruby-mysql2-gem-python-mysqldb-using-mamp

Były to kroki:

$ 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 

Ten krok nie powiodło się:

$ make -j 3 

Po komentowania testów jednostkowych dla „my_atomic -t.dir 'w /tmp/mysql-5.5.9/CMakeFiles/Makefile2' make -j 3 'poszło dobrze.

$ 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 

Zgaduję, że ostrzeżenie "Nieznane przez klienta" było niczym krytycznym.
I ostatni krok:

install_name_tool -change /tmp/mysql-5.5.9/libmysql/libmysqlclient.16.dylib /Applications/MAMP/Library/lib/libmysqlclient.16.dylib ~/.rvm/gems/[email protected]/gems/mysql2-0.2.11/ext/mysql2/mysql2.bundle 

A błąd pojawia się podczas uruchamiania serwera szyn:

$ 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 

Po prostu nie mogę ustawić tego mysql2 gem i starałem tygodni. Po licznych błędach próbujących zainstalować klejnot mysql2, w tym momencie całkowicie utknąłem.

Używam RVM i ruby-1.9.2-p290 na OS X Lion z MAMP 2.0.3 i Rails 3.0.7.

Każda pomoc jest znacznie mile widziane!

+1

Podobny błąd: http://stackoverflow.com/questions/7056157/mac-osx-lion-and-ruby-fatal-failed-to-allocate-memory – Mirko

+0

Właśnie powtarzane wszystko kroki, w tym "make -j 3" na komputerze SnowLeopard i wszystko działa bez problemów. To musi być kwestia Lwa. – Mirko

+0

Mirko, czy to naprawiłeś? – jBeas

Odpowiedz

0

warto dodać to do Gemfile:

gem 'mysql2', < '0.3' 

zrobiłem post o podobnym problemem jakiś czas temu. Można zobaczyć odpowiedź tutaj:

Cannot run migrations due to MySQL error

+1

Daj spokój, naprawdę nie sądzisz, że nie dodałem go do mojej Gemfile. Wypróbowałem wszystkie 0.2.xx mysql2 gems ... – Mirko

4

Nie należy stosować MAMP do tego.

Czytam, co próbujesz zrobić. Twój problem nie jest klejnotem mysql2. Twoim problemem jest instalacja mysql.

Śledź ten artykuł pokazujący użycie homebrew do zainstalowania mysql. Jest to bardzo proste i zajmuje około 10-15 minut, w tym czas instalacji, aby go skonfigurować.

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

uwaga Side z użyciem napar zainstalować mysql. Po zainstalowaniu mysql i powiedzie się, to wypluje mnóstwo informacji, i trzeba uważnie na nie patrzeć, ponieważ między innymi śmieciami są 1-2 wiersze, które zawierają instrukcje, wklejanie niektórych rzeczy itp.

Moja konfiguracja:

Obecnie w mojej konfiguracji mam MAMP (dla mojego katalogu/sites), gdy robi proste rzeczy jak wordpress witryn, itp ... Następnie mam homebrew zainstalować MySQL dla szyn (ostatecznie przeszedłem do sqlite/pg dla heroku). Tak, mogę je uruchomić w tym samym czasie.Mam tę konfigurację, ponieważ moje projekty wymagają przeskakiwania między aplikacjami rails, statycznymi stronami docelowymi HTML i kilkoma starszymi projektami php, a ja lubię separację z 2 instalacjami mysql.

+0

Dziękuję za odpowiedź. Udało mi się w Leopardzie i Snow Leopard mieć tylko mysql MAMPa i naprawdę chciałbym mieć to samo dla Lwa. Obecnie używam gem ruby-mysql, ale spróbuję obniżyć MAMP do wersji 1.x, gdy dostanę trochę czasu, jak się wydaje na tych blogach, które będą działać. Moja ostatnia deska ratunku będzie kolejną instancją mysql z homebrew ... – Mirko

+0

Chciałbym, spojrzałam na ten link w twoim poście i miałeś z tym problemy przez ostatni miesiąc. Gdzie jest w tym zabawa? Czas napisać świetny kod !! Nienawidzę rzeczy administratora serwera, nie mojej torby. Ja też nie mam żadnych problemów z wydajnością, jeśli się o to martwisz. Ponadto, po chwili po prostu przełączyłem się na sqlite, nie widzę powodu, aby trzymać się mysql, szczególnie jeśli już powoduje to tyle problemów w twoim systemie. – jBeas

+0

Muszę używać mysql w produkcji, więc nie mam wyboru. Czy używałeś sqlite w dev i mysql w produkcji? Czy to jest wykonalne? – Mirko

13

Rozwiązałem ten problem, odinstalowując mysql-connector-c i rekompilując gem mysql2 za pomocą flag include i lib z warzonego serwera 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/

+0

Pracowałam jak wdzięk dla mnie –

+0

Pracował idealnie. –

+0

Dzięki za udostępnienie. Nie mam zainstalowanego MySQL przy użyciu naparu, ale nadal działa dla mnie. –

Powiązane problemy