简体   繁体   English

Mac OS X和mysql2上的Rails-LoadError:找不到dlsym符号

[英]Rails with Mac OS X and mysql2 - LoadError: dlsym symbol not found

I installed mysql 5.1.61 from official site. 我从官方站点安装了MySQL 5.1.61。 It has been compiled and installed but now when i try to run simple rake db:migrate it show such error 它已经编译并安装了,但是现在当我尝试运行简单的rake db:migrate ,会显示此错误

Connecting to {:password=>nil, :encoding=>"utf8", :database=>"mnemosyne_spec", :host=>"localhost", :username=>"root", :adapter=>"mysql2"}
rake aborted!
LoadError: dlsym(0x7faaf9048bf0, Init_mysql2): symbol not found - /Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle

Tasks: TOP => db:migrate

Full trace: 完整跟踪:

** Invoke db:migrate (first_time)
** Execute db:migrate
Connecting to {:password=>nil, :encoding=>"utf8", :database=>"mnemosyne_spec", :host=>"localhost", :username=>"root", :adapter=>"mysql2"}
rake aborted!
LoadError: dlsym(0x7fafa1d30510, Init_mysql2): symbol not found - /Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/mysql2-0.3.11/lib/mysql2.rb:9
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/adapters/mysql2.rb:1:in `require'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/adapters/mysql2.rb:1
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:379:in `k_require'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:379:in `tsk_require'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:100:in `check_requiring_thread'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:97:in `synchronize'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:97:in `check_requiring_thread'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:379:in `tsk_require'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/database/connecting.rb:25:in `adapter_class'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/database/connecting.rb:67:in `connect'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/gems/sequel-3.39.0/lib/sequel/core.rb:147:in `connect'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/lib/mnemosyne.rb:52:in `db_connect!'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/lib/mnemosyne.rb:32:in `configure'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/lib/mnemosyne.rb:25:in `initialize!'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/lib/mnemosyne/database_tasks.rb:21:in `initialize'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/lib/mnemosyne/database_tasks.rb:83:in `initialize'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/Rakefile:63:in `new'
/Users/serg/rails_projects_terminal/brandspotter/mnemosyne/Rakefile:63
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/Users/serg/.rvm/rubies/ruby-1.8.7-p370/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/gems/rake-0.9.2.2/bin/rake:33
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/bin/rake:19:in `load'
/Users/serg/.rvm/gems/ruby-1.8.7-p370@global/bin/rake:19
/Users/serg/.rvm/gems/ruby-1.8.7-p370@mnemosyne/bin/ruby_noexec_wrapper:14
Tasks: TOP => db:migrate

I tried to reinstall ruby and gems and it changed nothing. 我试图重新安装红宝石和宝石,但它没有改变。 What can i do to solve that? 我该怎么解决?

My info: 我的信息:

Mac OS X 10.8.2 Mountain Lion
Xcode 4.5.1
osx-gcc-installer
Mysql  Ver 14.14 Distrib 5.1.61, for apple-darwin10.3.0 (i386) using readline 5.1
RVM 1.16.10

PS I didn't have such problem with mysql installation from homebrew. PS我没有从自制安装mysql这样的问题。

I founded the solution! 我找到了解决方案!

Problem was in MySQL installation. 问题出在MySQL安装中。 It was x86 which is not correct for Mac OS X 10.7 +. 这是x86,不适用于Mac OS X 10.7 +。

1) So, first of all we should remove old version of MySQL: 1)因此,首先我们应该删除旧版本的MySQL:

$ sudo rm /usr/local/mysql
$ sudo rm -rf /usr/local/mysql*
$ sudo rm -rf /Library/StartupItems/MySQLCOM
$ sudo rm -rf /Library/PreferencePanes/My*
$ sudo rm -rf /Library/Receipts/mysql*
$ sudo rm -rf /Library/Receipts/MySQL*
$ sudo rm -rf /var/db/receipts/com.mysql.*

1.1) After that run 1.1)在那之后

$ nano /etc/hostconfig

And remove line with 并删除线与

MYSQLCOM=-YES-

2) Just to make sure that everything will be alright you can remove at least mysql gem: 2)为了确保一切正常,您可以至少删除mysql gem:

$ gem uninstall mysql2

Or you can remove all gems in your gemset via rvm: 或者,您可以通过rvm删除宝石集中的所有宝石:

$ rvm gemset empty your-gemset-name

3) Then install x64 MySQL version . 3)然后安装x64 MySQL版本

4) And install all missing gems via bundler: 4)并通过捆绑器安装所有缺少的宝石:

$ bundle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM