неинициализированная константа MysqlCompat :: MysqlRes (с использованием mms2r gem)

переместил мое приложение rails на новый сервер и должен был установить несколько зависимостей от gem. Однако после установки mysql gem я получаю ошибку, неинициализированную константу MysqlCompat :: MysqlRes, всякий раз, когда я пытаюсь запустить команду rake, которая включает в себя базу данных mysql. Кажется, я получаю эту ошибку только тогда, когда мне нужен камень mms2r. Кто-нибудь слышал об этом? Я запускаю mysql 2.8.1 gem.

на моей Mac OS X 10.6 Я сделал это, чтобы установить 2.8.1 gem, который отлично работал с моим mysql5-сервером MacPorts:

sudo env ARCHFLAGS="-arch x86_64" gem install mysql 

В основном проблема заключается в том, что динамическая библиотека libmysqlclient не может быть найдена. Вышеупомянутые решения будут работать, но вам нужно будет повторно их применять при каждом восстановлении драгоценного камня или при установке новой версии MySQL.

Альтернативный подход заключается в том, чтобы добавить каталог MySQL, содержащий библиотеку, в динамический путь загрузки. Помещение следующего в мой файл .bashrc решило проблему:

 export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH" 

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

  file `which mysql` file `which ruby` 

Оба должны совпадать с 64-битным исполняемым файлом x86_64 Mach-O или 64-битным исполняемым файлом i386 от Mach-O. Я установил 64-разрядный mysql, затем

 export ARCHFLAGS="-arch x86_64" ; sudo gem install --no-rdoc --no-ri mysql -v 2.7 -- --with-mysql-dir=/usr/local --with-mysql-config=/usr/local/mysql/bin/mysql_config 

и вуаля!

Если у вас есть mysql 5.5, выполните следующие действия: http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/

FTR: Если бы мне не нужна была какая-то глупая репутация, я бы поддержал идентификационный ответ, подумайте над этим моим преимуществом.

Да, я видел подобное сообщение об ошибке, ища тот же несуществующий class MysqlCompat :: MysqlRes

Как оказалось, этот class не должен существовать; сообщение об ошибке вызвано проблемой с последним драйвером Mysql. mysql-2.8.1 искал мои библиотеки в каталоге с дополнительным уровнем «mysql» в конце. Например, мои библиотеки (в MacOS X 10.5.8) находятся в / usr / local / mysql / lib, но библиотека mysql.bundle ищет библиотеки MySQL в / usr / local / mysql / lib / mysql … что неправильно.

Мне было достаточно легко исправить, создав символическую ссылку в / usr / local / mysql / lib с именем «mysql», которая указывает на «.».

Поэтому, когда библиотеки ссылаются на эту дополнительную глубину, они обнаруживаются и работают. Это, безусловно, взлом; Я уверен, что есть более подходящие способы исправить это. Мне просто нужно, чтобы он работал, чтобы я мог заниматься другими вещами.

Более того, это может не сработать для вас. Вероятно, это сработает, если ваша ошибка выглядит так:

  ./mysql.bundle: dlopen(./mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib (LoadError) Referenced from: /Users/ccullen/Projects/npapp-v2/mysql-ruby-2.8.1/mysql.bundle Reason: image not found - ./mysql.bundle from test.rb:5 

Поскольку это, кажется, недавнее развитие, и я не видел никакого прямого ответа на него, я думал, что поделюсь тем, как я его исправил. Удачи 🙂

gem install -v = 2.7.1 также исправит это.

Установка правильных ARCHFLAGS при установке gem (re) помогла мне .. без каких-либо символических ссылок:

http://joergbattermann.tumblr.com/post/181479575/fixing-the-nameerror-uninitialized-constant

Эта проблема появилась со мной после обновления Ubuntu с 9.10 по 10.04.

Кажется, это проблема с камнем mysql.

Симптомы: Любое использование ActiveRecord, требующее подключения к mysql, дает трассировку стека из «неинициализированной константы MysqlCompat :: MysqlRes»

Я попробовал «gem update mysql» и обнаружил, что не могу создавать собственные расширения, потому что компилятор не может найти библиотеку mysql_client. Эта библиотека (libmysqlclient.so.16) находится в / usr / lib.

Исправить для ubuntu 10.04:

Как корень, я сделал это:

 apt-get install libmysqlclient-dev gem install mysql 

Я замечаю, что здесь есть несколько разных людей, и мне интересно, не нашли ли мы основную причину.

Переменные, которые люди должны уточнять в своих ответах:

  • версия операционной системы – какая версия того, что вы используете?
  • где и как вы установили mysql? – люди здесь, похоже, установили свой mysql из источника в / usr / local (я установил мой через систему упаковки ubuntu)
  • вы на 64-битной ubuntu или 32-битной? (Я сейчас 32-разрядный).

С mysql gem (2.8.1) я получал

неинициализированная константа MysqlCompat :: MysqlRes

Использование -v 2.7 заставляет его работать отлично, а для тех, кто использовал Homebrew для установки mysql

sudo gem install mysql -v 2.7 – –with-mysql-config = / usr / local / Cellar / mysql / 5.1.48 / bin / mysql_config

Обратите внимание, что при необходимости вы можете изменить версию mysql.

sudo gem install mysql -v 2.7 должен делать трюк …

sudo gem install mysql -v 2.7 – –with-mysql-config = / usr / local / mysql / bin / mysql_config также сделал трюк для меня, когда перешел на новый ноутбук Snow Leopard. Я не использовал MacPorts для установки mysql, а скорее из двоичного кода, и не имел никакого успеха с решениями флагов или символическими ссылками.

Я пробовал все остальное здесь, но все еще проблема. Переход от MySQL 5.5 до 5.1 исправил его для меня. (Mac OS X 10.6.5)

Понижение рейтинга (с 5.9) до mysql 5.1 помогло на 10.6 … запустить как mysql, так и mysql2.

Драки mysql и mysql2 работают на ruby ​​1.9.2, просто обновляют ruby ​​и устанавливают необходимый вам камень.

 gem uninstall mysql gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config ldconfig /usr/local/mysql/lib/mysql RAILS_ENV=production rake db:migrate --trace 

Это сработало для меня.

 sudo apt-get install libmysqlclient15-dev 

Я пробовал все вышеперечисленное, и никто из них не работает для меня. При попытке установить mysql версии 2.7 я получаю сообщение об ошибке:

 sudo gem install -v=2.7.1 mysql -- --with-mysql-dir=/usr/local/mysql-5.1.39-osx10.5-powerpc/bin/mysql_config ERROR: could not find gem mysql locally or in a repository F107PHD:stepgreen.org tdillahu$ sudo gem install -v=2.7 mysql -- --with-mysql-dir=/usr/local/mysql-5.1.39-osx10.5-powerpc/bin/mysql_config 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 --with-mysql-dir=/usr/local/mysql-5.1.39-osx10.5-powerpc/bin/mysql_config checking for mysql_query() in -lmysqlclient... no checking for main() in -lm... no checking for mysql_query() in -lmysqlclient... no checking for main() in -lz... no 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 --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 /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 

Моя первоначальная ошибка: ake aborted! неинициализированная константа MysqlCompat :: MysqlRes /vendor/rails/activesupport/lib/active_support/dependencies.rb:440:in load_missing_constant' /vendor/rails/activesupport/lib/active_support/dependencies.rb:80:in const_missing’

У меня была такая же проблема после обновления с Fedora 10 до Fedora 12. Я исправил ее, просто удалив gem mysql и установив его снова. Таким образом, он соответствует новой версии MySQL.

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

Отлично работал для меня 🙂

В Mac OS X 10.6.4 мне пришлось указать каталог архитектуры и конфигурации:

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

Если ваша версия Mysql равна 5.5, ее следует удалить. Я просто оставил статью об использовании mysql с ruby: http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/

Это то, что сработало для меня. Я прочитал массу сообщений и обнаружил, что использование системы ruby ​​install вызывает проблему несовместимости:

  1. не используйте стандартную rubyовую установку! установить ruby ​​с помощью macports
  2. не используйте установку rubygems по умолчанию! установить rb-rubygems с помощью macports
  3. использовать mysql 5.1 (не 5.5) – установить с mysql.com mac .dmg
  4. 4.

sudo env ARCHFLAGS = “- arch x86_64” gem install mysql – –with-mysql-config = / usr / local / mysql / bin / mysql_config

 sudo env ARCHFLAGS="-arch x86_64" gem install mysql 

Dmg пакет с сайта mysql и ddone!

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

также работал для меня, когда флагом и символическими ссылками не было! БЛАГОДАРЯ!!

Как зависимость mysql связана с mms2r? Я автор mms2r, кстати.

Параметры mms2r gemspec https://github.com/monde/mms2r/blob/master/mms2r.gemspec не отображают зависимость mysql.

  • Изменить twitter bootstrap navbar
  • Игнорирование часовых поясов в Rails и PostgreSQL
  • rails media file stream принимает запрос диапазона байтов через send_data или метод send_file
  • Как проверить ответ JSON с помощью RSpec?
  • Серийный цикл ActiveRecord с использованием JSON вместо YAML
  • curl: (1) Протокол https не поддерживается или отключен в libcurl
  • OmniAuth & Facebook: проверка сертификата не выполнена
  • Ошибка запуска Rails-сервера: undefined method 'configure'
  • Использование шрифтов с конвейером Rails
  • Правильная структура активов SCSS в Rails
  • Rails: перенаправить все неизвестные маршруты в root_url
  • Interesting Posts

    Получение предупреждения «Использование двухступенчатой ​​анимации вращения» с помощью UIImagePickerController

    Как я могу запустить EXE из сетевого ресурса?

    Почему .NET добавляет дополнительную косую черту к уже существующим косым чертам в пути?

    Как перебирать ключи и значения с помощью ng-repeat в AngularJS?

    Подписано на неподписанное преобразование в C – всегда ли оно безопасно?

    Как вывести файл Excel * .xls из classического ASP

    Готовы ли ReadyBoost к системам с более оперативной памятью?

    Как обрезать клики () в canvasе html5 в Chrome Windows?

    Как проверить массив входов с помощью validate plugin jquery

    Что происходит с тем, что происходит с памятью с памятью std :: deque?

    Гипер-V и поддержка виртуализации BIOS заставляют Windows 8 зависать при загрузке

    MySQL – Как сделать заказ? Таблица INNODB

    Должны ли каждая таблица иметь первичный ключ?

    Возможно ли выполнить двойной загрузку Windows XP и Windows 8 Developer Preview?

    Разница между фиксацией с PHP Storm?

    Давайте будем гением компьютера.