更新到Ubuntu 16.04后,mysql2 gem无法正常工作 - libmysqlclient.so.18

Hen*_*nri 11 ruby ruby-on-rails unicorn mysql2

在更新之前一切正常.使用带有RVM的ruby 1.9.3p392和rails(3.2.12)使用MySQL 5.7.16和Nginx和Unicorn

日志显示

LoadError: libmysqlclient.so.18: cannot open shared object file: No such file or directory - /home/bill/apps/xxx/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.16/lib/mysql2/mysql2.so
Run Code Online (Sandbox Code Playgroud)

我试过了:

  1. 卸载/安装mysql2 gem
  2. 运行 bundle install

没有任何效果.更新后有人遇到过这个问题吗?

Jos*_*ter 24

删除并重新安装mysql2gem.

我有同样的事情.从Ubuntu 14升级到16并看到同样的错误.

为了修复它,我只是卸载了mysql2gem并使用bundler重新安装它.

  1. 卸载mysql2gem:

    $ bundle exec gem uninstall mysql2
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重新安装mysql2gem:

    $ bundle install
    
    Run Code Online (Sandbox Code Playgroud)

原因是它必须在安装gem时安装本机扩展,并且像升级OS 1或更多版本这样的大型系统更改需要重建这些本机扩展.

希望有所帮助.

  • 谢谢.我在其他地方发现了一个修复程序,建议`gem uninstall mysql2`不起作用.强制它使用`bundle exec`从包中删除它对我来说是重要的部分. (3认同)