簡體   English   中英

MySQL Gem失敗:Snow Leopard上的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中的 rubymysql或者使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM