[英]Problem installing mysql gem on Snow Leopard: uninitialized constant MysqlCompat::MysqlRes
[英]MySQL Gem failure: MysqlCompat::MysqlRes on Snow Leopard
我试图让mysql gem工作......它只是不想。 每次我做rake db:migrate,我都会
uninitialized constant MysqlCompat::MysqlRes
我从这个磁盘映像安装了mysql: mysql-5.5.9-osx10.6-x86_64.dmg
我用臭名昭着的 archflags设置运行gem install:
sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
我正在使用的ruby版本是Snow Leopard的默认版本:
[~/sites/testdb]$ file `which mysql`
/usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64
[~/sites/testdb]$ file `which ruby`
/usr/bin/ruby: Mach-O universal binary with 3 architectures
/usr/bin/ruby (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/ruby (for architecture i386): Mach-O executable i386
/usr/bin/ruby (for architecture ppc7400): Mach-O executable ppc
我的database.yml非常简单:
development:
adapter: mysql
host: 127.0.0.1
database: testdb
username: root
password:
任何帮助,将不胜感激。
您可以轻松解决问题。
如果你不使用rvm:
sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundleruby
如果你使用rvm:
install_name_tool -change libmysqlclient.16.dylib usr/local/mysql/lib/libmysqlclient.16.dylib [YOUR_GEMSET_PATH]/gems/mysql-2.8.1/lib/mysql_api.bundle
我上周在博客上发表了这篇文章: Mac OS X上的MySQL 5.5 。
我使用install_name_tool
替代解决方案是在shell启动文件中设置DYLD_LIBRARY_PATH
。 这样做的好处就是你做了一次,而如果你使用install_name_tool
,你将重复每次重新安装或升级gem。
mysql2 gem将出现同样的问题,但错误消息略有不同。 问题是如何构建libmysqlclient
库。 它不包含完整路径,因此与其链接的任何内容都无法在运行时找到它。
您可以尝试使用mysql2
gem,它可能不会遇到同样的问题。
我发现使用MacPorts中的 ruby
和mysql
或者使用brew来保持所有内容都在同一页面而不会弄乱系统Ruby通常要好得多。
OS X附带的MySQL版本可能与您安装的版本不匹配,或者gem安装程序可能会混淆使用哪个配置程序。 确保mysql_config
返回正确的路径。
我遇到了同样的错误。 但是,在我的机器上,mysql gen是在我的机器上还有mysql 5.1时构建的。 现在,在升级到MySQL 5.5之后,原始构建/usr/local/mysql/lib/libmysqlclient.16.dylib
引用的dyld文件不再存在,并被文件/usr/local/mysql/lib/libmysqlclient.18.dylib
替换/usr/local/mysql/lib/libmysqlclient.18.dylib
。
完全重建mysql gem固定的东西,即
gem uninstall mysql
gem install mysql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.