问题在Mac上安装与rails3的mysql2 gem [英] issue in installing mysql2 gem with rails3 on mac

查看:80
本文介绍了问题在Mac上安装与rails3的mysql2 gem的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 使用本机扩展安装mysql2(0.2.6)/Library/Ruby/Site/1.8/rubygems/installer.rb:483:in`build_extensions':错误:无法构建宝石本地扩展。 (Gem :: Installer :: ExtensionBuildError)

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can not在/System/Library/Frameworks/Ruby.framework /Versions/1.8/usr/lib/ruby/ruby.h


找到ruby的头文件将保持安装在/ Library /Ruby/Gems/1.8/gems/mysql2-0.2.6进行检查。
从/Library/Ruby/Site/1.8/rubygems/installer.rb记录到/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out
的结果:446:从/Library/Ruby/Site/1.8/rubygems/installer.rb:446:in`each'
从`/Library/Ruby/Site/1.8/rubygems/installer`获得`build_extensions'
.rb:198:在`install'中
从/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:在'each'中
来自/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in来自/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in的每个'
'从/ Library / Ruby / Gems运行'
' /1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in从/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler安装
/cli.rb:226:in从/Library/Ruby/Gems/1.8/gems安装
/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in从/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler发送
/vendor/thor/task.rb:22:从`/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118'运行'
:在`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 $ b $来自/ usr / bin / bundle:19来自`load'$ b $来自/ usr / bin / bundle:19

编辑

  Mohit-Jains-MacBook-Pro:casecreed mohit $ locate mysql_config $ b $ / 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

以及做完你所做的事后建议... ...
$ b $ ie

pre $ 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:创建
(在/ Users / mohit / projects / casecreed)
rake中止!
dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle,9):库未加载:libmysqlclient.16.dylib
引用自: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
原因:image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6 /lib/mysql2/mysql2.bundle
/ Users / mohit / projects / casecreed / Rakefile:4
(通过使用--trace



EDIT2

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

 无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器(2)
无法为{reconnect=> false,encoding= >utf8,username=>root,adapter=>mysql2,database=>the_casecreed_test,host=>localhost > 5,password=> nil},字符集:utf8,整理:utf8_unicode_ ci
无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器(2)
无法为{reconnect=> false,encoding=> ;utf8,username=>root,adapter=>mysql2,database=>the_casecreed_development,host=>localhost ; 5,password=> nil},charset:utf8,整理:utf8_unicode_ci

EDIT3



开发。 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:创建
(在/ Users / mohit / projects / casecreed)
rake中止!
dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle,9):库未加载:libmysqlclient.16.dylib
引用自: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
原因:image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6 /lib/mysql2/mysql2.bundle
/ Users / mohit / projects / casecreed / Rakefile:4
(通过使用--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 )。


 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

EDIT

  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

and after doing what u suggested...

ie

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

here is the error..

    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

screenshot of whole process after answer was modified..

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

Even not able to connect to mysql.

Check this screenshot.

EDIT5

This is the solution but i am not able to understand, why mysql server was not starting..

Screenshot

解决方案

Try the following, which seems to have worked for others:

  1. From the Terminal, run locate mysql_config and identify the path to the mysql_config binary
  2. Use that path in the following command to install the gem:sudo gem install mysql2 -- –with-mysql-config=/path/you/identified/above/mysql_config

[Edit]

In response to the new error, e.g.:

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

I believe this is due to mysql2 not using the full path to libmysqlclient.16.dylib. Others have had luck with:

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

However, be sure to replace /usr/local/mysql/lib/libmysqlclient.16.dylib with the path to your own libmysqlclient.16.dylib. I'm not positive what it would be, but you may be able to find it with locate (if not, check around in the lib directory for /usr/local/mysql-5.5.9-osx10.6-x86_64).

这篇关于问题在Mac上安装与rails3的mysql2 gem的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆