Ask*_*kar 32 ruby mysql macos ruby-on-rails-4.2 osx-elcapitan
错误:
/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `require': dlopen(/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib (LoadError)
Referenced from: /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
Reason: image not found - /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
Run Code Online (Sandbox Code Playgroud)
在Gemfile中: gem 'mysql2'
$ ls -al/usr/local/lib/libmysql*
lrwxr-xr-x 1 askar admin 49 Nov 13 10:48 /usr/local/lib/libmysqlclient.20.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.20.dylib
lrwxr-xr-x 1 askar admin 42 Nov 13 10:48 /usr/local/lib/libmysqlclient.a -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.a
lrwxr-xr-x 1 askar admin 46 Nov 13 10:48 /usr/local/lib/libmysqlclient.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.dylib
lrwxr-xr-x 1 askar admin 37 Nov 13 10:48 /usr/local/lib/libmysqld.a -> ../Cellar/mysql/5.7.9/lib/libmysqld.a
lrwxr-xr-x 1 askar admin 44 Nov 13 10:48 /usr/local/lib/libmysqlservices.a -> ../Cellar/mysql/5.7.9/lib/libmysqlservices.a
Run Code Online (Sandbox Code Playgroud)
$ ls -al /usr/local/Cellar/mysql/5.7.9/lib/
total 84392
drwxr-xr-x 9 askar admin 306 Nov 12 22:16 .
drwxr-xr-x 14 askar admin 476 Nov 13 10:48 ..
-r--r--r-- 1 askar admin 3780168 Nov 13 10:48 libmysqlclient.20.dylib
-r--r--r-- 1 askar admin 4280752 Nov 12 22:16 libmysqlclient.a
lrwxr-xr-x 1 askar admin 23 Nov 12 22:16 libmysqlclient.dylib -> libmysqlclient.20.dylib
-r--r--r-- 1 askar admin 35126528 Nov 12 22:16 libmysqld.a
-r--r--r-- 1 askar admin 9048 Nov 12 22:16 libmysqlservices.a
drwxr-xr-x 3 askar admin 102 Nov 13 10:48 pkgconfig
drwxr-xr-x 43 askar admin 1462 Nov 12 22:17 plugin
drwxr-xr-x 43 askar admin 1462 Nov 12 22:17 plugin
Run Code Online (Sandbox Code Playgroud)
正如你看到的我有libmysqlclient.20.dylib,它20不是18,否则我会遵循解决方案在这里.
我最近升级到El Capitan,但不确定这是原因.
更新:
感谢@Rashmirathi提示重新安装宝石.
只是想注意,我还需要在Gemfile中指定为:
gem 'mysql2', '~> 0.3.18'
Run Code Online (Sandbox Code Playgroud)
否则我有错误:
为数据库适配器指定'mysql2',但未加载gem.添加
gem 'mysql2'到您的Gemfile(并确保其版本是ActiveRecord所需的最低版本).
但最后我得到了错误:
Mysql2 ::错误
您的密码已过期.要登录,您必须使用支持过期密码的客户端进行更改.
通过再次设置密码解决了这个问题:
SET PASSWORD=PASSWORD('your_password');
Run Code Online (Sandbox Code Playgroud)
小智 41
这将解决您的问题:
gem pristine mysql2
Run Code Online (Sandbox Code Playgroud)
CesarSulbarán的解决方案
Fab*_* Sa 23
对于那些OS X El Capitain或更多,这解决了我的问题:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请访问/sf/answers/2301288181/
我在python中遇到了类似的问题:libmysqlclient.20.dylib而不是18El Capitan.pip install --upgrade mysql修复它,但只适用于python2.
| 归档时间: |
|
| 查看次数: |
21110 次 |
| 最近记录: |