2008-12-09 4 views
3

После обновления нескольких драгоценных камней через терминал на моем mac я создал новый проект рельсов, созданный с помощью базы данных mysql. При запуске приложения появляется регулярная приветственная навигация.Проблемы с настройкой MYSQL

Вот проблема - я пытался нажав на ссылку под названием «О среде вашего приложения», я получаю следующий результат в браузере:

MissingSourceFile in Rails/infoController#properties 
no such file to load -- mysql 

Я также получить этот вывод в терминал

The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. 
Processing Rails::InfoController#properties (for 127.0.0.1 at 2008-12-09 20:41:41) [GET] 
Processing Rails::InfoController#properties (for 127.0.0.1 at 2008-12-09 20:41:41) [GET] 
MissingSourceFile (no such file to load -- mysql): 
... 

Как я уже сказал, я попытался выпустить «gem install mysql» после остановки приложения, только чтобы приветствовать этот кусок жаргона, который я не могу понять:

WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and 
     /usr/bin aren't both writable. 
WARNING: You don't have /Users/mymac/.gem/ruby/1.8/bin in your PATH, 
     gem executables will not run. 
Building native extensions. This could take a while... 
ERROR: Error installing mysql: 
    ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lm... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lz... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lsocket... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lnsl... no 
checking for mysql_query() in -lmysqlclient... no 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 
    --with-mysql-config 
    --without-mysql-config 
    --with-mysql-dir 
    --without-mysql-dir 
    --with-mysql-include 
    --without-mysql-include=${mysql-dir}/include 
    --with-mysql-lib 
    --without-mysql-lib=${mysql-dir}/lib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-mlib 
    --without-mlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-zlib 
    --without-zlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-socketlib 
    --without-socketlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-nsllib 
    --without-nsllib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 


Gem files will remain installed in /Users/mymac/.gem/ruby/1.8/gems/mysql-2.7 for inspection. 
Results logged to /Users/mymac/.gem/ruby/1.8/gems/mysql-2.7/gem_make.out 

Очевидно, что что-то не так с моей установкой mysql, поскольку я также попытался запустить команду rake для создания базы данных, что вызвало у меня следующее.

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. 
rake aborted! 
no such file to load -- mysql 

(See full trace by running task with --trace) 

Однако, когда я запускаю mysql -version в командной строке, mysql установлен!

mysql Ver 14.12 Distrib 5.0.67, for apple-darwin9.4.0 (i686) using readline 5.1 

Я также пытался выдавать "Судо камень установить MySQL", однако это также не дало никаких результатов:

sudo gem install mysql 
Password: 
Building native extensions. This could take a while... 
ERROR: Error installing mysql: 
    ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lm... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lz... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lsocket... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lnsl... no 
checking for mysql_query() in -lmysqlclient... no 


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.7 for inspection. 
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.7/gem_make.out 

Я также пытался выдавать «Судо камень установить MySQL - --with-mysql- config =/usr/local/mysql/bin/mysql_config ", как указано в bradheintz, который, похоже, был установлен нормально, но после повторного просмотра среды приложения не происходит выпадающего списка ajaxy и приложение rails полностью прекращается! Следующий вывод печатается непосредственно перед тем, как приложение решит умереть на мне LOL.

dyld: lazy symbol binding failed: Symbol not found: _mysql_init 
    Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle 
    Expected in: dynamic lookup 

dyld: Symbol not found: _mysql_init 
    Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle 
    Expected in: dynamic lookup 

Trace/BPT trap 

Если кто-то может понять, что здесь происходит, и как идти о решении этой проблемы, я был бы очень благодарен :)

ответ

6

Проблема в том, что драгоценный камень MySQL создает собственные расширения и потребностей системы -специальная информация о том, где найти определенные библиотеки. Вы должны предоставить это в командной строке.

Заканчивать this page - важный бит (который работал для меня, во всяком случае) было:

sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Конечно, не забудьте заменить правильный путь для вашей системы.

Кроме того, придерживайтесь своих gem install команд через sudo.

Большая проблема заключается в том, что программное обеспечение gem не содержит отзывов о том, что вы не можете просто делать gem install mysql, как вы делаете с каждым другим камнем (и, действительно, использовали, чтобы иметь возможность делать с камнем MySQL).

+0

Нет инструкций, у парня по-прежнему возникают проблемы с установкой mysql. – Damian 2008-12-09 21:09:59

0

Try принуждая сборку только 32-разрядной версии (если вы на Intel Mac, то -V с жемчужиной должно дать вам более подробный вывод)

sudo env ARCHFLAGS="-arch i386" gem install -V mysql -- --with-mysql-config=/usr/local/sql32/bin/mysql_config 

Более подробная информация в этом блоге: http://blog.pastie.org/2008/10/mysql-64-bit-ruby-32-bit-friends-again.html

0

Последний раз, когда я увидел эту ошибку, я попытался установить адаптер mysql/ruby. И я столкнулся с такой же ошибкой после обновления рельсов на Mac до rails 1.2.2, потому что 1.2.2 удаляет gem mysql по умолчанию.

Причина, по которой в последний раз, когда я нашел, отсутствует клиент или библиотека mysql. Возьмите Redhat, например, вы можете перейти по этой ссылке и установить клиент и библиотеку mysql. http://dev.mysql.com/downloads/mysql/5.0.html#linux-rhel5-x86-32bit-rpms

Дайте мне знать результат.

Joe

Смежные вопросы