У меня есть проблема при попытке установить Ruby mysql драйвер драгоценного камня.
Я недавно обновил до Snow Leopard и сделал установку руководства Hivelogic MySQL. Это все, кажется, хорошо работает, поскольку я могу получить доступ к mysql из командной строки и внести изменения в базу данных.
Моя проблема - это, если я теперь использую
rake db:migrate
Я добираюсь:
rake aborted!
uninitialized constant MysqlCompat::MysqlRes
(See full trace by running task with --trace)
Теперь кажется, что мой mysql драгоценный камень не работает правильно, поскольку я могу получить доступ к MySQL, прекрасному из Python с помощью драйвера Python (который я скомпилировал в). Я поэтому пытался восстановить драгоценный камень с помощью следующей команды от этого сайта: http://techliberty.blogspot.com/, (случайно я использую недавний Intel MacBook Pro):
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Это компилирует, хотя я не получаю определения для документации:
Building native extensions. This could take a while...
Successfully 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
...
Я немного озадачен, поскольку мой mysql_config расположен в корректном месте:
/usr/local/mysql/bin/mysql_config
И я удалил все другие экземпляры mysql драгоценного камня от моей системы.
Любые предложения значительно ценились бы.Большое спасибо.
PS я видел это предыдущее сообщение, деинициализировала постоянный MysqlCompat:: MysqlRes (использующий mms2r драгоценный камень), но это не кажется применимым для моей версии.
Хорошо, я наконец решил эту проблему.
Причина, по которой это происходило, заключалась в том, что у меня были установлены две версии Ruby.
Эти две версии противоречили друг другу и означали, что когда я когда-либо пытался установить гем MySQL с правильными ARCHFLAGS, система думала, что я использую другой версия Ruby.
Исправление было достаточно простым:
Перекомпилируйте гем MySQL с правильными ARCHFLAGS:
sudo env ARCHFLAGS = "- arch x86_64" gem install --no-rdoc --no-ri mysql - --with-mysql- config = / usr / local / mysql / bin / mysql_config
Как только я это сделал, все заработало.
Я применил инструкции hivelogic post , но с версией 5.1.41 MySQL. И для установки драгоценного камня я сделал 2 вещи:
sudo gem uninstall mysql
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
И у меня все отлично сработало.
Так же проблема здесь; Борьба с этим и на протяжении более двух недель!
Я не эксперт, но из других более знающих людей, которые нашли решение, проблема, кажется, указывает на драгоценный камень Ruby для MySQL, который, по-видимому, неправильно устанавливает себя на Mac.
Я буду продолжать расследовать на сайте Ruby Forge, и посмотреть, может ли какой-нибудь Gum Gem Guurus исправить эту ужасную ошибку .... Мне нужны мои рельсы, работающие! Время - деньги!
Итак, я сообщил об этом ошибке в RubyForge Mysql разработчиков страницы отслеживания ошибок .
Я уверен, что надеюсь, что они могут помочь, так как это качается мой текущий проект.
И если кто-то еще может поддержать свой отчет об ошибке, возможно, у него будет больше внимания; Пожалуйста, позвоните!
В последний день я очень много работал, чтобы решить эту проблему, и, наконец, понял это. Я бегаю со снежным барсом и установил новые рельсы и mysql. Единственный способ заставить это работать - установить 64-битную версию mysql из dmg (не macports) и перезапустить мою машину в 64-битном режиме, удерживая клавиши «6» и «4» во время загрузки. Затем я установил драгоценный камень, установил локальный хост моей БД, и он работал как чемпион.
Что ж, я новичок. После некоторой борьбы и поскольку ни один из вышеперечисленных способов у меня не работал, я решил, что проблема связана с тем, что мой mysql был 64-битной установкой, а ruby был 32-битным. Проверьте эти команды
file `which mysql`
file `which ruby`
Оба должны соответствовать 64-битному исполняемому файлу Mach-O x86_64 или 64-битному исполняемому файлу Mach-O i386. Я установил 32-битный mysql, переустановил Ruby из исходного кода и рельсов, и с тех пор все работает безупречно. {1}} Кстати, я на Леопарде.
После того, как я ломал голову над проблемой, я тоже обнаружил, что проблема связана с несколькими двоичными файлами одной и той же установленной версии mysql gem. Следующее исправило это для меня.
gem uninstall mysql
Select gem to uninstall:
1. mysql-2.8.1
2. mysql-2.8.1
3. All versions
> 3
Successfully uninstalled mysql-2.8.1
Successfully uninstalled mysql-2.8.1
Затем я перекомпилировал гем mysql из исходных кодов на моей машине Snow Leopard, и все было в порядке с миром.
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql-5.1.46-osx10.6-x86_64/bin/mysql_config
Некоторые проблемы были связаны с устаревшими или множественными конфликтующими двоичными файлами рубинов и драгоценных камней. У меня была проблема с "прозрачной" компиляцией гема mysql с системным ruby, пытаясь запустить мой код с ruby 1.9. После выяснения проблемы благодаря этой теме все прошло гладко.
Чтобы избежать этих проблем и для записей, набор инструментов RVM может оказаться очень полезным: http://rvm.beginrescueend.com . Он помогает правильно управлять несколькими версиями Ruby и умно управляет драгоценными камнями для всех версий, не сохраняя копию для каждой версии.
Похоже, что использование RVM может помочь избежать некоторых проблем в этой теме.