Не удалось установить MySQL на Mac OS X

У меня точно такая же проблема, как описано в этом вопросе: Проблемы установки MYSQL. К сожалению, ни один из ответов мне не помог (и он закрыт).

Я пытаюсь изучить Ruby on Rails и не заставляю работать MySQL (поэтому это связано с программированием).

Я набрал: rake db:create и получил:

!!!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)
HD-Auckland:shoutbox max$ 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/max/.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
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
checking for main() in -lmygcc... 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.

Gem files will remain installed in /Users/max/.gem/ruby/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /Users/max/.gem/ruby/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Итак, как мне сказали, я попробовал sudo gem install mysql и получил:

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

/opt/local/bin/ruby extconf.rb
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
checking for main() in -lmygcc... 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=/opt/local/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
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Я также попробовал эту команду sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config и получил ту же ошибку!

Что я могу сделать? Я только хочу перенести свою базу данных на сервер MySQL!

Спасибо за помощь, Мекс

Обновлять:

Спасибо за отличный ответ! Да, я на Снежном Барсе. Я скачал mysql отсюда http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg и установил его. Затем я следовал руководству Hivelogic по установке mysql.

когда я сейчас набираю: sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_configили sudo gem istall mysql или sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

Я получу:

Building native extensions.  This could take a while...
fotoSuccessfully installed mysql-2.8.1
1 gem installed
Installing ri documentation for mysql-2.8.1...

No definition for next_result

No definition for field_name

No definition for field_table

No definition for field_def

No definition for field_type

No definition for field_length

No definition for field_max_length

No definition for field_flags

No definition for field_decimals

No definition for time_inspect

No definition for time_to_s

No definition for time_get_year

No definition for time_get_month

No definition for time_get_day

No definition for time_get_hour

No definition for time_get_minute

No definition for time_get_second

No definition for time_get_neg

No definition for time_get_second_part

No definition for time_set_year

No definition for time_set_month

No definition for time_set_day

No definition for time_set_hour

No definition for time_set_minute

No definition for time_set_second

No definition for time_set_neg

No definition for time_set_second_part

No definition for time_equal

No definition for error_errno

No definition for error_sqlstate
Installing RDoc documentation for mysql-2.8.1...

No definition for next_result

No definition for field_name

No definition for field_table

No definition for field_def

No definition for field_type

No definition for field_length

No definition for field_max_length

No definition for field_flags

No definition for field_decimals

No definition for time_inspect

No definition for time_to_s

No definition for time_get_year

No definition for time_get_month

No definition for time_get_day

No definition for time_get_hour

No definition for time_get_minute

No definition for time_get_second

No definition for time_get_neg

No definition for time_get_second_part

No definition for time_set_year

No definition for time_set_month

No definition for time_set_day

No definition for time_set_hour

No definition for time_set_minute

No definition for time_set_second

No definition for time_set_neg

No definition for time_set_second_part

No definition for time_equal

No definition for error_errno

No definition for error_sqlstate

И выполнение rake db:create приведет к:

(in /Users/max/rails/shoutbox)
!!! 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)

person Max    schedule 06.01.2010    source источник
comment
Просто чтобы уточнить, как вы установили mysql, из двоичных файлов сайта mysql, fink, порты, пиво и т. д.?   -  person apod    schedule 06.01.2010
comment
sudo port install mysql5 +server rb-mysql Я думаю, что выполнил команду, но больше не был уверен, когда вы спросили, поэтому я сделал это снова, и сейчас он загружается: / извините, ребята, надеюсь, я не потратил ваше время. будет обновляться здесь, как только он будет закончен.   -  person Max    schedule 06.01.2010
comment
выполняя установку через macports, я получаю эту ошибку: Ошибка: возвращен целевой org.macports.configure: lipo: невозможно открыть входной файл: /opt/local/lib/libz.dylib (Нет такого файла или каталога) Ошибка: Статус 1 встречающиеся при обработке.   -  person Max    schedule 06.01.2010
comment
Вы можете следовать руководству Hivelogic по установке mysql. hivelogic.com/articles/compiling-mysql-on-snow-leopard   -  person apod    schedule 06.01.2010


Ответы (7)


по какой-то причине (может быть, потому что я использую rubygems 1.3.7 или устанавливаю mysql-2.8.1)

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

у меня не сработало, поэтому, взглянув на gems/mysql-2.8.1/ext/mysql_api/extconf.rb, я обнаружил, что extconf.rb ищет в PATH для mysql_config, поэтому я попытался

export PATH=$PATH:/usr/local/mysql/bin
sudo gem install mysql

и сделал работу

person Valdis    schedule 03.09.2010
comment
Спасибо за это. Отлично работает на Snow Leopard! - person JP Richardson; 10.09.2010

Ты на снежном барсе? Вы должны выполнить компиляцию зависимостей C с заголовками x64, попробуйте:

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
person makevoid    schedule 06.01.2010
comment
Вам не нужно этого делать. Я установил 64-разрядную версию MySQL на Snow Leopard из исходного кода, используя эти инструкции, и все работает нормально: hivelogic.com/articles/compiling-mysql-on-snow-leopard - person John Topley; 06.01.2010

Я сам столкнулся с проблемами с драгоценным камнем MySQL, и это единственные 2 ссылки, которые я действительно добавил в закладки, поэтому одна из них должна была действительно работать для меня. Думал поделюсь.

  1. http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard
  2. http://rapd.wordpress.com/2007/05/17/battle-against-ror-gem-install-mysql/

Второй довольно старый, поэтому не уверен, что он все еще применим.

person nowk    schedule 06.01.2010

Чтобы установить гем MySQL на OS X, вам необходимо установить инструменты разработчика XCode, которые находятся на вашем установочном диске. Вы также можете загрузить их с сайта http://developer.apple.com.

person Topher Fangio    schedule 06.01.2010

Я просто решаю эту проблему, используя эту команду:

 sudo env ARCHFLAGS="-arch i386" gem install --no-rdoc --no-ri mysql -v 2.8.1 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Действительно, мне нужно было установить mysql gem версии 2.8.1 на мой mac OS X Leopard 10.5.8 с запуском mysql-5.6.2-m5-osx10.5-x86 из файла dmg. У меня была проблема, что он не мог найти библиотеки, и я сделал некоторые манипуляции, после чего он не смог установить из-за разрешений. Я узнал эту команду, добавил нужную мне версию и изменил архитектуру на ту, которая соответствует моей установке mysql.

Так что если кто-то все еще хочет установить эту версию :) давайте попробуем! Но мы не много устанавливали это наверное, и меньше на Леопард!

person Bachet    schedule 19.06.2011

Правильный камень для использования — mysql2.

person Dominic Goulet    schedule 24.11.2011

У меня такая же проблема. Я решил сначала установить адаптер:

gem install activerecord-mysql2-adapter

Затем установите гем mysql2, используя

sudo gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
person hugalves    schedule 05.05.2013