Проблема, устанавливающая mysql драгоценный камень на Snow Leopard: неинициализированный постоянный MysqlCompat:: MysqlRes

У меня есть проблема при попытке установить 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 драгоценный камень), но это не кажется применимым для моей версии.

16
задан Community 23 May 2017 в 12:09
поделиться

7 ответов

Хорошо, я наконец решил эту проблему.

Причина, по которой это происходило, заключалась в том, что у меня были установлены две версии Ruby.

  1. До установки Snow Leopard я скомпилировал и установил свою собственную версию Ruby, следуя рекомендациям HiveLogic.
  2. Затем я обновился до Snow Leopard (у которого есть собственная версия Ruby)

Эти две версии противоречили друг другу и означали, что когда я когда-либо пытался установить гем MySQL с правильными ARCHFLAGS, система думала, что я использую другой версия Ruby.

Исправление было достаточно простым:

  1. Удалите версию Ruby для HiveLogic ( https://content.pivotal.io/blog/removing-old-ruby-source-installation-after-a-leopard- upgrade )
  2. Перекомпилируйте гем MySQL с правильными ARCHFLAGS:

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

Как только я это сделал, все заработало.

10
ответ дан 30 November 2019 в 15:35
поделиться

Я применил инструкции 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

И у меня все отлично сработало.

2
ответ дан 30 November 2019 в 15:35
поделиться

Так же проблема здесь; Борьба с этим и на протяжении более двух недель!

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

Я буду продолжать расследовать на сайте Ruby Forge, и посмотреть, может ли какой-нибудь Gum Gem Guurus исправить эту ужасную ошибку .... Мне нужны мои рельсы, работающие! Время - деньги!

Итак, я сообщил об этом ошибке в RubyForge Mysql разработчиков страницы отслеживания ошибок .

Я уверен, что надеюсь, что они могут помочь, так как это качается мой текущий проект.

И если кто-то еще может поддержать свой отчет об ошибке, возможно, у него будет больше внимания; Пожалуйста, позвоните!

2
ответ дан 30 November 2019 в 15:35
поделиться

В последний день я очень много работал, чтобы решить эту проблему, и, наконец, понял это. Я бегаю со снежным барсом и установил новые рельсы и mysql. Единственный способ заставить это работать - установить 64-битную версию mysql из dmg (не macports) и перезапустить мою машину в 64-битном режиме, удерживая клавиши «6» и «4» во время загрузки. Затем я установил драгоценный камень, установил локальный хост моей БД, и он работал как чемпион.

0
ответ дан 30 November 2019 в 15:35
поделиться

Что ж, я новичок. После некоторой борьбы и поскольку ни один из вышеперечисленных способов у меня не работал, я решил, что проблема связана с тем, что мой mysql был 64-битной установкой, а ruby ​​был 32-битным. Проверьте эти команды

file `which mysql`
file `which ruby`

Оба должны соответствовать 64-битному исполняемому файлу Mach-O x86_64 или 64-битному исполняемому файлу Mach-O i386. Я установил 32-битный mysql, переустановил Ruby из исходного кода и рельсов, и с тех пор все работает безупречно. {1}} Кстати, я на Леопарде.

6
ответ дан 30 November 2019 в 15:35
поделиться

После того, как я ломал голову над проблемой, я тоже обнаружил, что проблема связана с несколькими двоичными файлами одной и той же установленной версии 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
1
ответ дан 30 November 2019 в 15:35
поделиться

Некоторые проблемы были связаны с устаревшими или множественными конфликтующими двоичными файлами рубинов и драгоценных камней. У меня была проблема с "прозрачной" компиляцией гема mysql с системным ruby, пытаясь запустить мой код с ruby ​​1.9. После выяснения проблемы благодаря этой теме все прошло гладко.

Чтобы избежать этих проблем и для записей, набор инструментов RVM может оказаться очень полезным: http://rvm.beginrescueend.com . Он помогает правильно управлять несколькими версиями Ruby и умно управляет драгоценными камнями для всех версий, не сохраняя копию для каждой версии.

Похоже, что использование RVM может помочь избежать некоторых проблем в этой теме.

0
ответ дан 30 November 2019 в 15:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: