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

时间:2011-12-10 11:50:29

标签: mysql ubuntu mysql2 ruby-on-rails-2 libmysql

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

script/server -e production 

我明白了:

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

这是我的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

我该如何解决?

7 个答案:

答案 0 :(得分:86)

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

gem uninstall mysql2
gem install mysql2

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

希望帮助那里的人。

答案 1 :(得分:7)

您需要安装开发库。尝试

sudo apt-get install libmysqlclient20-dev

sudo apt-get install libmysqlclient19-dev

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

pip uninstall mysql-python
pip install mysql-python

答案 4 :(得分:2)

此处未提及的另一个选项,但已在this question中得到解答。您是否必须使用hana::tuple(hana::type_c<Types>...)选项安装MySQL-python。这个问题更容易找到,所以我在这里添加答案以供参考:

首先卸载当前版本的--no-binary

MySQL-python

然后使用pip uninstall MySQL-python 参数安装MySQL-python

--no-binary

答案 5 :(得分:0)

更新到Ubuntu 19.10之后。我得到了错误:

  

django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:libmysqlclient.so.20:无法打开共享库文件:没有这样的文件或目录

解决方案:

1)激活您的virtualenv

2)(yourvirtualenv)pip uninstall mysqlclient

3)(yourvirtualenv)pip install mysqlclient

答案 6 :(得分:0)

如果您正在运行Ubuntu / Debian,则正确的解决方案是安装libmariadb-dev-compat并重建(使用MariaDB 10.3 +)。