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

Я получаю неинициализированную константу MysqlCompat::MysqlRes при запуске rake db:migrate.

Так вот моя история. Я обновил свою систему до снежного барса, и у меня был существующий проект, который работал нормально. Я пытался обновить некоторые вещи, один из которых был MySQL до 64-разрядных. Это когда все пошло не так. Поэтому, если я сделаю следующее, я получу следующие результаты из своего каталога work/myproject.

файл, который mysql /usr/local/mysql/bin/mysql: исполняемый файл Mach-O i386 файл, который ruby ​​/usr/local/bin/ruby: исполняемый файл Mach-O i386

Так что я, честно говоря, не знаю, где я это переношу. Я думал, что установил 64-битную версию MySQL, но это не так.

Я запустил gem uninstall mysql, а затем запустил sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- -with-mysql-config=/usr/local/mysql/bin/mysql_config

Тоже не сработало!

Кто-нибудь может помочь?

3 ответа

Решение

Это сработало для меня (на OS X 10.6.6):

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

Проблема в том, что вам нужно использовать ту же архитектуру для ruby, libmysqlclient и mysql ruby ​​gem (i386 или x86_64).

Я заметил, что рубин, на который вы ссылаетесь, находится в /usr/local/bin/ruby вместо стандартного расположения системы /usr/bin/ruby - убедитесь, что вы используете версию ruby, которую вы намеревались.

Использование i386 вместо x86_64 у меня сработало

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

Другие вопросы по тегам