使用rails3在mac上安装mysql2 gem的问题

Installing mysql2 (0.2.6) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework /Versions/1.8/usr/lib/ruby/ruby.h Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each' from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `build_extensions' from /Library/Ruby/Site/1.8/rubygems/installer.rb:198:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:96:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in `run' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `send' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/bin/bundle:13 from /usr/bin/bundle:19:in `load' from /usr/bin/bundle:19 

编辑

  Mohit-Jains-MacBook-Pro:casecreed mohit$ locate mysql_config /Applications/XAMPP/xamppfiles/bin/mysql_config /usr/local/mysql-5.5.9-osx10.6-x86_64/bin/mysql_config /usr/local/mysql-5.5.9-osx10.6-x86_64/man/man1/mysql_config.1 

做完你所建议的……

  sudo gem install mysql2 -- –with-mysql-config=/usr/local/mysql-5.5.9-osx10.6-x86_64/bin/mysql_config 

这是错误..

  Mohit-Jains-MacBook-Pro:casecreed mohit$ rake db:create (in /Users/mohit/projects/casecreed) rake aborted! dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle /Users/mohit/projects/casecreed/Rakefile:4 (See full trace by running task with --trace 

EDIT2

答案被修改后整个过程的屏幕截图 ..

 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Couldn't create database for {"reconnect"=>false, "encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql2", "database"=>"the_casecreed_test", "host"=>"localhost", "pool"=>5, "password"=>nil}, charset: utf8, collation: utf8_unicode_ci Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Couldn't create database for {"reconnect"=>false, "encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql2", "database"=>"the_casecreed_development", "host"=>"localhost", "pool"=>5, "password"=>nil}, charset: utf8, collation: utf8_unicode_ci 

EDIT3

development.yml

EDIT4

甚至无法连接到mysql。

检查此屏幕截图 。

EDIT5

这是解决方案,但我无法理解,为什么mysql服务器没有启动..

截图

尝试以下,这似乎适用于其他人 :

  1. 从终端运行locate mysql_config并确定mysql_config二进制文件的路径
  2. 在以下命令中使用该路径来安装gem: sudo gem install mysql2 -- –with-mysql-config=/path/you/identified/above/mysql_config

[编辑]

为了回应新错误,例如:

 Mohit-Jains-MacBook-Pro:casecreed mohit$ rake db:create (in /Users/mohit/projects/casecreed) rake aborted! dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle /Users/mohit/projects/casecreed/Rakefile:4 (See full trace by running task with --trace 

我相信这是因为mysql2没有使用libmysqlclient.16.dylib的完整路径。 其他人幸运的是:

 sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 

但是,请确保将/usr/local/mysql/lib/libmysqlclient.16.dylib替换为您自己的libmysqlclient.16.dylib的路径。 我不是肯定它会是什么,但你可以找到它(如果没有,请在lib目录中查看/usr/local/mysql-5.5.9-osx10.6-x86_64 )。

从这里下载64位然后尝试安装mysql2 gem

http://dev.mysql.com/downloads/mysql/

它会工作..

尝试从macports安装mysql

 sudo ports install mysql5 

它需要很长时间才能完成,但一旦完成运行

 gem install mysql2 

一切都应该工作得很好