2011-09-20 17 views
6

Tôi đang sử dụng MAMP2, RVM trên OS X Lion và không có cách nào tôi có thể nhận được đá quý mysql2 để làm việc với ứng dụng Rails của tôi.Không thể có được viên ngọc mysql2 để làm việc với MAMP2 và RVM trên Lion, Rails3 ứng dụng

Tôi đã theo bài viết trên blog này http://blog.mirotin.net/35/mamp-1-9-5-mysql-5-5-9-and-ruby-mysql2 và điều này một http://www.pa-ket.com/blog/show/12-osx-ruby-mysql2-gem-python-mysqldb-using-mamp

Đây là những bước sau:

$ 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 

Bước này thất bại:

$ make -j 3 

Sau khi bình luận các unit test cho 'my_atomic -t.dir' trong /tmp/mysql-5.5.9/CMakeFiles/Makefile2 'làm -j 3' đi ok.

$ 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 

Tôi đoán cảnh báo 'Khách hàng không biết' là không có gì quan trọng.
Và bước cuối cùng:

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 

Và lỗi tôi nhận được khi bắt đầu đường ray server:

$ 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 

Tôi chỉ không thể thiết lập rằng mysql2 đá quý và tôi đã cố gắng trong nhiều tuần. Sau nhiều lần lỗi cố gắng cài đặt mysql2 đá quý, đây là nơi mà tôi hoàn toàn bị mắc kẹt.

Tôi đang sử dụng RVM và ruby-1.9.2-p290 trên OS X Lion với MAMP 2.0.3 và Rails 3.0.7.

Bất kỳ trợ giúp nào là rất nhiều được đánh giá cao!

+1

tương tự lỗi: http://stackoverflow.com/questions/7056157/mac-osx-lion-and-ruby-fatal-failed-to-allocate-memory – Mirko

+0

Tôi chỉ lặp đi lặp lại tất cả các bước bao gồm 'make -j 3' trên máy SnowLeopard và mọi thứ hoạt động không có vấn đề gì. Vì vậy, đây phải là một vấn đề Lion. – Mirko

+0

Mirko, bạn đã sửa lỗi này chưa? – jBeas

Trả lời

0

Hãy thử thêm này để Gemfile của bạn:

gem 'mysql2', < '0.3' 

tôi đã thực hiện một bài đăng về một vấn đề tương tự trong một thời gian trở lại. Bạn có thể xem các câu trả lời ở đây:

Cannot run migrations due to MySQL error

+1

Thôi nào, bạn không thực sự nghĩ rằng tôi đã không thêm nó vào Gemfile của tôi. Tôi đã thử tất cả đá quý mysql2 0.2.xx ... – Mirko

4

Bạn không nên sử dụng MAMP cho việc này.

tôi đọc những gì bạn đang cố gắng làm. Vấn đề của bạn không phải là đá quý mysql2. Vấn đề của bạn là cài đặt mysql.

Làm theo bài viết hiển thị này sử dụng homebrew để cài đặt mysql. Nó rất đơn giản và mất khoảng 10-15 phút kể cả thời gian cài đặt để thiết lập nó.

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

Side lưu ý với việc sử dụng bia để cài đặt mysql. Sau khi bạn cài đặt mysql và nó thành công nó sẽ nhổ ra một tấn thông tin, và bạn cần phải nhìn vào nó một cách cẩn thận bởi vì có 1-2 dòng trong số tất cả các rác khác là hướng dẫn, dán một số thứ, ...

Thiết lập của tôi:

Hiện tại trong thiết lập của tôi, tôi có MAMP (cho thư mục/trang web của tôi) khi thực hiện các công cụ đơn giản như các trang wordpress, v.v ... Sau đó tôi đã cài đặt mysql cho đường ray (cuối cùng tôi chuyển sang sqlite/pg cho heroku). Có, tôi có thể chạy chúng cùng một lúc.Tôi có thiết lập này bởi vì các dự án của tôi yêu cầu tôi phải nhảy xung quanh giữa các ứng dụng đường ray, các trang đích html tĩnh và một vài dự án php cũ hơn, và tôi thích sự tách biệt có 2 cài đặt mysql.

+0

Cảm ơn câu trả lời của bạn. Tôi đã quản lý trên cả Leopard và Snow Leopard để chỉ có mysql của MAMP, và tôi thực sự muốn có nó cho Lion. Tôi hiện đang sử dụng đá quý ruby-mysql, nhưng tôi sẽ cố gắng hạ cấp MAMP xuống 1.x khi tôi nhận được chút thời gian, vì dường như các bài đăng trên blog đó sẽ hoạt động. Khu nghỉ mát cuối cùng của tôi sẽ là một trường hợp mysql khác với homebrew ... – Mirko

+0

Tôi sẽ, tôi đã xem liên kết đó trong bài đăng của bạn và bạn đã gặp sự cố với điều này trong tháng qua. Đâu là niềm vui trong đó? Thời gian để viết một số mã tuyệt vời !! Tôi ghét công cụ quản trị máy chủ, không phải túi của tôi. Tôi cũng không có bất kỳ vấn đề hiệu suất nào cả nếu bạn lo lắng về điều đó. Ngoài ra, sau một thời gian tôi chỉ chuyển sang sqlite, tôi thấy không có lý do để dính với mysql, đặc biệt là nếu nó đã gây ra rất nhiều rắc rối trên hệ thống của bạn. – jBeas

+0

Tôi phải sử dụng mysql trong sản xuất vì vậy tôi không có sự lựa chọn. Bạn đã sử dụng sqlite trong dev và mysql trong sản xuất? Nó có thể làm được không? – Mirko

13

Tôi đã giải quyết sự cố này khi gỡ cài đặt mysql-connector-c và biên dịch lại mysql2 gem với cờ bao gồm và lib từ máy chủ mysql đã pha.

$ 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

Làm việc như một sự quyến rũ cho tôi –

+0

Làm việc hoàn hảo. –

+0

Cảm ơn bạn đã chia sẻ. Tôi không có MySQL cài đặt bằng cách sử dụng brew nhưng nó vẫn làm việc cho tôi. –