问题在Mac上安装与rails3的mysql2 gem [英] issue in installing mysql2 gem with rails3 on mac
问题描述
使用本机扩展安装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
EDIT4
即使无法连接到mysql 。
查看此屏幕截图 。
EDIT5
这是解决方案,但我无法理解,为什么MySQL服务器没有启动..
解决方案请尝试以下内容,它似乎有为其他人工作:
- 从终端运行
locate mysql_config
并确定路径mysql_config
二进制
- 在以下命令中使用该路径安装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
EDIT4
Even not able to connect to mysql.
EDIT5
This is the solution but i am not able to understand, why mysql server was not starting..
解决方案Try the following, which seems to have worked for others:
- From the Terminal, run
locate mysql_config
and identify the path to themysql_config
binary- 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 ownlibmysqlclient.16.dylib
. I'm not positive what it would be, but you may be able to find it withlocate
(if not, check around in thelib
directory for/usr/local/mysql-5.5.9-osx10.6-x86_64
).这篇关于问题在Mac上安装与rails3的mysql2 gem的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!