Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL Gem失败:雪豹上的MysqlCompat::MysqlRes_Mysql_Ruby On Rails_Gem - Fatal编程技术网

MySQL Gem失败:雪豹上的MysqlCompat::MysqlRes

MySQL Gem失败:雪豹上的MysqlCompat::MysqlRes,mysql,ruby-on-rails,gem,Mysql,Ruby On Rails,Gem,我正在努力让mysql gem正常工作。。。它只是不想。每次执行rake db:migrate时,我都会 uninitialized constant MysqlCompat::MysqlRes 我已经从这个磁盘映像安装了mysql: 我使用臭名昭著的archflags设置运行了gem安装: sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/loca

我正在努力让mysql gem正常工作。。。它只是不想。每次执行rake db:migrate时,我都会

uninitialized constant MysqlCompat::MysqlRes
我已经从这个磁盘映像安装了mysql:

我使用臭名昭著的archflags设置运行了gem安装:

sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
我使用的ruby版本是雪豹的默认版本:

[~/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
My database.yml非常简单:

development:
  adapter: mysql
  host: 127.0.0.1
  database: testdb
  username: root
  password: 

任何帮助都将不胜感激

您可以尝试使用
mysql2
gem,它可能不会遇到相同的问题

我发现,使用
ruby
mysql
或者将所有内容保持在同一个页面上,而不是弄乱ruby系统通常会更好


OSX附带的MySQL版本可能与您安装的版本不匹配,或者gem安装程序不知道使用哪个配置程序。确保
mysql\u config
返回正确的路径。

您可以轻松解决问题

如果不使用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

上周我在博客上写了这个:

我使用
install\u name\u tool
的另一种解决方案是在shell启动文件中设置
DYLD\u LIBRARY\u路径。这样做的好处是只需执行一次,而如果使用
install\u name\u tool
,则每次重新安装或升级gem时都会重复此操作


mysql2 gem也会有同样的问题,但错误消息略有不同。问题在于如何构建
libmysqlclient
库。它不包含完整路径,因此任何与它链接的东西在运行时都找不到它。

我遇到了相同的错误。不过,在我的机器上,mysql gen是在我的机器上还有mysql 5.1时构建的。现在,在升级到MySQL 5.5之后,原始版本
/usr/local/MySQL/lib/libmysqlclient.16.dylib
引用的dyld文件不再存在,被一个文件
/usr/local/MySQL/lib/libmysqlclient.18.dylib
替换

完全重建mysql gem修复的东西,即

gem uninstall mysql
gem install mysql