将我的Rails应用程序移动到新服务器上,并且必须安装一些gem依赖项。但是,在安装mysql gem后,每当我尝试运行涉及mysql数据库的rake命令时,都会收到错误,未初始化的常量MysqlCompat :: MysqlRes。看来我只有在需要mms2r宝石时才会出现这个错误。有没有人听说过这个?我正在运行mysql 2.8.1 gem。未初始化的常量MysqlCompat :: MysqlRes(使用mms2r宝石)
回答
在我的Mac OS X 10.6我这样做是为了安装2.8.1宝石,这与我的MacPorts的完美工作MYSQL5服务器:
sudo env ARCHFLAGS="-arch x86_64" gem install mysql
完美适合我。 – 2010-01-23 23:04:18
使用rvm时,这条线在前面没有使用sudo。 – 2010-08-11 15:13:04
@KyleHeironimus - “使用rvm时”是什么意思?我已经安装了rvm,但是当我不使用'sudo'运行命令时,我得到“您没有写入权限...”。为了使它与“rvm”一起工作,我有什么不同? (对不起,我对此很陌生。) – callum 2012-05-10 11:40:26
是的,我看到了一个类似的错误信息,寻找同样不存在的类MysqlCompat :: MysqlRes
事实证明,这个类不应该存在;该错误消息是由最新的Mysql驱动程序的问题引起的。 mysql-2.8.1在一个名为''''的目录下查找我的库,例如,我的库(在MacOS X 10.5.8下)位于/ usr/local/mysql/lib,但mysql.bundle库在/ usr/local/mysql/lib/mysql中查找MySQL库。这是错误的。
我发现很容易修复,通过在名为'mysql'的/ usr/local/mysql/lib中创建一个指向'。'的符号链接。
因此,当库在额外的深度被引用时,它们被找到并且工作。这绝对是一个黑客;我相信有更合适的方法来解决这个问题。我只是需要它的工作,所以我可以继续与其他事情。
此外,这可能不适合你。这是可能的工作,如果你的错误是这样的:
./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
因为这似乎是一个新的发展,我还没有看到它的任何直接回应,我想我会分享我如何固定它。祝你好运:)
在宝石(重新)安装设置适当的ARCHFLAGS帮我..不需要任何符号链接:
http://joergbattermann.tumblr.com/post/181479575/fixing-the-nameerror-uninitialized-constant
该链接已损坏。 – gdelfino 2009-10-10 18:01:36
我已经尝试了所有上述的和他们没有为我工作,要么。当试图安装的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中止! 未初始化的常量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”
为了解决这个问题,我必须使用(--with-mysql-config =而不是--with-mysql-dir):sudo gem install mysql - --with-mysql-config =/usr/local /的mysql-5.0.86-osx10.5-86 /斌/ mysql_config。 – 2009-10-11 13:15:30
这很好,如果你的mysql安装在/ usr/local /下,但是如果你的mysql从包管理器安装了,你会在哪里找到mysql_config? – daf 2010-05-30 11:34:20
须藤宝石安装mysql -v 2.7 应该做的伎俩......
对于OS X,这个(2.7)应该工作; 2.7.1不适用于OS X – davetron5000 2009-11-04 02:17:43
我有同样的问题在Fedora 10升级到Fedora 12后的我通过卸载mysql gem并重新安装它来修复它。所以它符合新版本的MySQL。
sudo的创业板安装MySQL -v 2.7 - --with-mysql的-配置=在/ usr /本地/ MySQL的/斌/ mysql_config
完全为我工作:)
sudo的创业板安装MySQL的 - v 2。7 - --with-mysql-config =/usr/local/mysql/bin/mysql_config在迁移到我的新雪豹笔记本电脑时也为我做了诀窍。我没有使用MacPorts来安装mysql,而是使用二进制文件,并且没有使用arch标志解决方案或符号链接。
sudo gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
当arch标志和符号链接没有时,我也为我工作!谢谢!!
sudo env ARCHFLAGS="-arch x86_64" gem install mysql
Dmg包从mysql网站上下载!
在将Ubuntu从9.10升级到10.04后,出现了此问题。
这似乎是与MySQL宝石的问题。
症状:任何ActiveRecord使用的,需要到MySQL的连接产生一个堆栈跟踪从“未初始化不断MysqlCompat :: MysqlRes”即将
我尝试了“宝石更新MySQL的”,我发现我不能建本地扩展,因为编译器找不到mysql_client库。该库(libmysqlclient.so.16)位于/ usr/lib中。
修复了Ubuntu的10.04:
以root身份,我做了这些:
apt-get install libmysqlclient-dev
gem install mysql
我注意到几个不同的人在这里尝试新事物,我不知道,如果我们不定位根原因。
变量,人们需要在他们的答案澄清:
- 操作系统版本 - 这是什么您使用的版本?
- where和你是怎么安装mysql的? - 这里的人似乎已经从/ usr/local下的源代码安装了他们的mysql(我通过ubuntu包装系统安装了我的)
- 你是在64bit ubuntu或32bit?(我目前在32位。)
我在Ubuntu 12.10上遇到同样的问题。你的解决方案并没有真正的帮助... – confiq 2012-11-04 10:13:37
与MySQL宝石(2.8.1)我正在
uninitialized constant MysqlCompat::MysqlRes
使用-v 2.7使得它完美的工作,并为那些谁使用自制软件来安装mysql
sudo gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/Cellar/mysql/5.1.48/bin/mysql_config
请注意,如果需要,您可以更改mysql版本。
在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的”是一个32位的安装,同时红宝石为64和32位。请使用这些命令
file `which mysql`
file `which ruby`
双方应匹配的Mach-O的64位可执行文件x86_64的或Mach-O的64位可执行文件的i386。我安装了一个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,Ruby和mysql/ruby gem都必须是64位。 – 2010-11-15 21:02:24
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
这对我有效。
找不到ldconfig命令,这是为mac吗?对于Ubuntu?对于Windows?烤面包机? – 2016-02-28 03:04:25
sudo apt-get install libmysqlclient15-dev
我在这里尝试了一切,但仍然有问题。从MySQL 5.5降级到5.1为我解决了这个问题。 (Mac OS X 10.6.5)
如果您的Mysql版本为5.5,则应该将其卸载。我刚刚离开了一篇关于用mysql红宝石:http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/
如果您有mysql 5.5遵循此:http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/
FTR:如果我并不需要一些愚蠢的代表,以给予好评,我会upvoted的identitcal答案,考虑这个我upvote。
这里你有你的名声LOL – 2016-02-28 03:05:35
这是我工作的。我读了大量的帖子,发现使用系统红宝石安装导致不兼容问题:
- 不使用默认的红宝石安装! 安装红宝石与macports
- 不使用默认的rubygems安装! 与MacPorts的
- 使用MySQL的5.1(不5.5)安装RB-的rubygems - 从mysql.com安装的MAC的.dmg 4.
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
降级(来自5.9)到MySQL 5.1中帮助在10.6。 ..运行MySQL和MySQL2宝石。
基本上问题是无法找到动态库libmysqlclient。上述解决方案可以工作,但是您需要在重建gem时或者安装新版本的MySQL时重新应用它们。
另一种方法是将包含库的MySQL目录添加到动态加载路径。把我的.bashrc文件如下解决了这个问题:
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
这对我有效... OSX 10.7.3 for mysql gem 2.8.1 – 2012-03-14 09:07:54
谢谢,这个工作! – mkk 2012-07-03 18:00:37
如果你在'osx 10.8.2'中导出,然后你sudo,你会得到一个警告,例如“DYLD_ environment variables being ignored”,但[这只是一个警告](https://discussions.apple.com/thread/ 4143805?开始= 0&TSTART = 0) – 2012-10-26 23:21:21
mysql和mysql2宝石上的红宝石1.9.2两个工作刚刚更新红宝石和安装所需的宝石。
mysql依赖关系与mms2r有什么关系?我是mms2r作者,顺便说一句。
mms2r gemspec https://github.com/monde/mms2r/blob/master/mms2r.gemspec没有列出mysql依赖项。
- 1. 未初始化的常量MysqlCompat :: MysqlRes
- 2. 未初始化的常量MysqlCompat :: MysqlRes与RubyMine
- 3. Ruby on Rails:未初始化的常量MysqlCompat :: MysqlRes
- 4. 未初始化的常量MysqlCompat ::在Ubuntu MysqlRes(MySQL的宝石错误),而不是固定
- 5. 未初始化的常量使用Twitter的红宝石宝石
- 6. 红宝石 - 未初始化的常量
- 7. MySQL + Snow Leopard + 32位+ Ruby on Rails =未初始化的常量MysqlCompat :: MysqlRes(帮助!)
- 8. 红宝石宝石(FFMPEG) “未初始化的常量”
- 9. 未初始化的常量
- 10. 轨道上的红宝石未初始化的常量错误
- 11. Rails - 新安装的宝石未初始化的常量错误
- 12. 红宝石及Mongoid - 未初始化的常量
- 13. iTunes搜索红宝石:未初始化的常量Itunes
- 14. 宝石'factory_girl_rails”错误未初始化的常量FactoryGirl(NameError)
- 15. 红宝石与Swig:NameError:未初始化的常量
- 16. 未初始化的常量宝石::在Heroku
- 17. 每当宝石运行到“未初始化的常量”时
- 18. 未初始化的常量Squeel
- 19. 未初始化的常量ApplicationController :: Bitly
- 20. 未初始化的常量达利(NameError)
- 21. 未初始化的常量ActiveMerchant
- 22. 未初始化的常量::的ActionView :: CompiledTemplates
- 23. Friendly_Id错误,未初始化的常量
- 24. 未初始化的初始值常量
- 25. 红宝石未初始化不断
- 26. Sidekiq错误未初始化的常量
- 27. 未初始化的常量ActiveSupport :: Concern(NameError)
- 28. NameError:未初始化的常量MongoClient
- 29. 未初始化的常量
- 30. 未初始化的常量HTTPSuccess(NameError)
此问题也会影响其他宝石 - 幸运的是,以下Markus的修复适用于所有 – mikeh 2010-12-21 22:49:55