未初始化的常量MysqlCompat :: MysqlRes(使用mms2r GEM)(uninit

2019-07-03 17:42发布

感动我的Rails应用到一个新的服务器,并且必须安装一些宝石的依赖。 但是,安装MySQL的宝石后,我得到的错误,未初始化的常量MysqlCompat :: MysqlRes,每当我试图运行涉及到mysql数据库耙命令。 看来,当我需要mms2r宝石我只得到这个错误。 有没有人听说过这个? 我运行MySQL 2.8.1宝石。

Answer 1:

在我的Mac OS X 10.6我这样做是为了安装2.8.1宝石,这与我的MacPorts MYSQL5服务器的完美工作:

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


Answer 2:

基本问题是动态库的libmysqlclient无法找到。 上述解决方案将工作,但您需要重新申请他们的任何时候,你重建宝石,或者当您安装一个新的MySQL版本。

另一种方法是将含有该库的MySQL目录添加到您的动态负载路径。 把下面我.bashrc文件解决了这个问题:

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


Answer 3:

我的问题是由于我的“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

瞧!



Answer 4:

如果您有mysql 5.5遵循此: http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/

FTR:如果我并不需要一些愚蠢的代表,以给予好评,我会upvoted的identitcal答案,认为是对我给予好评。



Answer 5:

是的,我看到了一个类似的错误信息,寻找同样不存在的类MysqlCompat :: MysqlRes

事实证明,那类不应该存在; 该错误信息是通过使用最新的MySQL驱动程序问题引起的。 的mysql-2.8.1在与“mysql的”在年底额外级别指定的目录找我的图书馆。 例如,我的图书馆(在MacOS X 10.5.8),是在/ usr /本地/ MySQL的/ lib目录,但mysql.bundle库会在MySQL的库在/ usr /本地/ MySQL的/ lib中/ MySQL的...这是不对的。

我发现它很容易的解决,通过创建位于/ usr /本地/ 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

因为这似乎是一个新的发展,我还没有看到它的任何直接回应,我想我会分享我如何固定它。 祝好运 :)



Answer 6:

创业板安装-v = 2.7.1将修复它。



Answer 7:

在创业板设置适当的ARCHFLAGS(重新)安装帮我..不需要任何符号链接:

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



Answer 8:

这个问题出现在我身边,从9.10升级的Ubuntu 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

我注意到,几个不同的人在这里尝试新事物,我不知道,如果我们不定位的根本原因。

人们需要在他们的答案澄清变量:

  • 操作系统版本 -什么是你使用的是哪个版本?
  • 在那里和你是怎么安装mysql? - 这里的人们似乎在/ usr /本地(我装矿通过Ubuntu的包装系统)已经安装从源代码的MySQL的
  • 你是在64位的Ubuntu或32位? (我目前在32位。)


Answer 9:

与MySQL宝石(2.8.1),我得到

未初始化的常量MysqlCompat :: MysqlRes

使用-v 2.7使得它完美的工作,并为那些谁使用自制安装mysql

sudo的创业板安装MySQL的-v 2.7 - --with-mysql的-配置=在/ usr /本地/库/ MySQL的/ 48年5月1日/斌/ mysql_config

请注意,如果需要的话你可以改变MySQL版本。



Answer 10:

须藤宝石安装mysql -v 2.7应该做的伎俩...



Answer 11:

sudo的创业板安装MySQL的-v 2.7 - 迁移到我的新雪豹笔记本电脑的时候--with-mysql的-配置=在/ usr /本地/ MySQL的/斌/ mysql_config也奏效了我。 我没有使用的MacPorts安装mysql,而是二进制文件,并与拱形标志的解决方案或符号链接没有运气。



Answer 12:

我尝试了一切在这里,但仍然有问题。 降级从MySQL 5.5到5.1的固定对我来说。 (Mac OS X的10.6.5)



Answer 13:

降级(从5.9)到MySQL 5.1中帮上10.6 ...运行MySQL和mysql2宝石。



Answer 14:

mysql和mysql2宝石上的红宝石1.9.2两个工作刚刚更新红宝石和安装所需的宝石。



Answer 15:

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

这为我工作。



Answer 16:

sudo apt-get install libmysqlclient15-dev


Answer 17:

我已经尝试了所有上述的和他们没有为我工作,要么。 当试图安装的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'



Answer 18:

我在Fedora 10升级到Fedora 12,我刚好卸载MySQL的宝石,并重新进行安装固定后,它有同样的问题。 因此,它与MySQL的新版本的规定。



Answer 19:

sudo的创业板安装MySQL的-v 2.7 - --with-mysql的-配置=在/ usr /本地/ MySQL的/斌/ mysql_config

完美的工作对我来说:)



Answer 20:

在Mac OS X 10.6.4,我必须指定架构和配置目录:

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



Answer 21:

如果你的MySQL版本是5.5,你应该将其卸载。 我刚刚离开了一篇关于用mysql红宝石: http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/



Answer 22:

这是对我工作。 我读了一吨的帖子,发现使用该系统的安装红宝石是造成不兼容的问题:

  1. 不使用默认安装的红宝石! 安装与MacPorts的红宝石
  2. 不使用默认的RubyGems安装! 安装RB-RubyGems的与MacPorts的
  3. 使用MySQL的5.1(不5.5) - 从mysql.com MAC的.dmg安装
  4. 4。

须藤ENV ARCHFLAGS = “ - 拱x86_64的” 宝石安装mysql - --with-mysql的-配置=在/ usr /本地/ MySQL的/斌/ mysql_config



Answer 23:

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

DMG包从MySQL网站的ddone!



Answer 24:

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

也为我工作的时候足弓标志和符号链接didnt! 谢谢!!



Answer 25:

MySQL的依赖是如何与mms2r? 我是mms2r作者,顺便说一句。

该mms2r gemspec https://github.com/monde/mms2r/blob/master/mms2r.gemspec没有列出一个MySQL的依赖。



文章来源: uninitialized constant MysqlCompat::MysqlRes (using mms2r gem)