【发布时间】:2017-01-02 11:11:41
【问题描述】:
刚刚升级到 Ubuntu 16.04.1 & MySQL-5.7
数据库已重新加载。从 mysql 控制台访问数据库正常。
重新启动。
现在,
rails 控制台产生以下错误:
LoadError: libmysqlclient.so.18: cannot open shared object file:
No such file or directory -
/var/www/.../shared/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/mysql2-0.4.5/mysql2/mysql2.so
/var/www/.../shared/vendor/bundle/ruby/2.2.0/gems/mysql2-0.4.5/lib/mysql2.rb:31:in `require'
mysql2.s0 存在于其指定路径中
-rwxr-xr-x 1 linkee admin 447949 Oct 31 17:36 mysql2.so*
我的理解是.so.18属于mysql 5.6,如果是这样,不明白为什么还涉及到。
libmysqlclient.so.18 未安装。
dpkg -l | grep mysql
ii libdbd-mysql-perl 4.033-1ubuntu0.1
ii libmysqlclient-dev 5.7.16-0ubuntu0.16.04.1
ii libmysqlclient20:amd64 5.7.16-0ubuntu0.16.04.1
ii mysql-client 5.7.16-0ubuntu0.16.04.1
ii mysql-client-5.7 5.7.16-0ubuntu0.16.04.1
ii mysql-client-core-5.7 5.7.16-0ubuntu0.16.04.1
ii mysql-common 5.7.16-0ubuntu0.16.04.1
ii mysql-server 5.7.16-0ubuntu0.16.04.1
ii mysql-server-5.7 5.7.16-0ubuntu0.16.04.1
ii mysql-server-core-5.7 5.7.16-0ubuntu0.16.04.1
ii python-mysqldb 1.3.7-1build2
mysql2 的 Gemfile.lock 条目:mysql2 (0.4.5)
gem install mysql2 安装OK。
gem install mysql2
Building native extensions. This could take a while...
Successfully installed mysql2-0.4.5
1 gem installed
希望能帮助您解决此问题。
【问题讨论】:
-
重建 gem? IE。删除它并重新安装,以便它强制重建。否则只要安装
libmysqlclient18,多个客户端库可以共存就好了。 -
不幸的是,这里没有在 xenial 上安装 libmysqlclient18 的候选者。
-
但我所拥有的是:/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20。一定是某种线索。
-
libmysqlclient.so.20,已超出 libmysqlclient-dev。 mysql2 gem 已被删除并重新安装了几次都无济于事。
标签: mysql ruby-on-rails-4