当前位置: 首页>>技术教程>>正文


mysql2.so:libmysqlclient_r.so.15:无法打开共享对象文件:没有这样的文件或目录

, , , ,

问题描述

我正在尝试使用Ubuntu 10.04服务器,sphinx,myql2版本0.2.7和percona服务器5.5(Myslql 5.5)运行Rails两个应用程序。 irb中的mysql2工作正常,我可以连接到db。这个rails 2应用程序正在另一个带有MySql 5.1的Centos服务器上运行。当我跑:

script/server -e production 

我明白了:

mysql2.so: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory

这是我的libs:

# ls -l /usr/lib |grep sql
-rw-r--r--  1 root root 10581008 2011-11-18 16:51 libmysqlclient.a
lrwxrwxrwx  1 root root       16 2011-12-10 05:48 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx  1 root root       20 2011-12-10 05:48 libmysqlclient.so -> libmysqlclient.so.16
lrwxrwxrwx  1 root root       29 2011-12-10 06:01 libmysqlclient.so.15 -> /usr/lib/libmysqlclient.so.16
-rw-r--r--  1 root root     7332 2011-11-18 16:44 libmysqlservices.a
-rw-r--r--  1 root root   562520 2010-02-08 06:59 libsqlite3.a
-rw-r--r--  1 root root      973 2010-02-08 06:59 libsqlite3.la
lrwxrwxrwx  1 root root       19 2011-12-07 17:15 libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx  1 root root       19 2011-03-09 18:43 libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rw-r--r--  1 root root   528668 2010-02-08 06:59 libsqlite3.so.0.8.6
drwxr-xr-x  3 root root     4096 2011-12-10 05:47 mysql

我该如何解决?

最佳解决思路

如果您在升级到12.04后再次遇到此错误(或者在升级到12.04后搜索此页面标题后到达此处的人员),以下内容对我有用:

gem uninstall mysql2
gem install mysql2

这将使用libmysqlclient18重新编译gem,并为我工作。

希望能帮到那里的人。

次佳解决思路

您需要安装开发库。尝试

sudo apt-get install libmysqlclient20-dev

要么

sudo apt-get install libmysqlclient19-dev

第三种解决思路

安装mysql客户端库:apt-get install libmysqlclient16

第四种思路

我在mysql-python中遇到此错误并使用pip解决了这个问题:

pip uninstall mysql-python
pip install mysql-python

第五种思路

这里没有提到的另一个选项,但已在this question中得到解答。是否必须使用--no-binary选项安装MySQL-python。这个问题更容易找到,所以我在这里添加答案以供参考:

首先卸载当前版本的MySQL-python

pip uninstall MySQL-python

然后使用--no-binary参数安装MySQL-python

pip install --no-binary MySQL-python MySQL-python

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7099.html,未经允许,请勿转载。