28

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

script/server -e production 

我得到:

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

这是我拥有的库:

# 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

我该如何解决?

4

7 回答 7

101

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

gem uninstall mysql2
gem install mysql2

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

希望能帮助那里的人。

于 2012-04-29T01:40:22.693 回答
8

您需要安装开发库。尝试

sudo apt-get install libmysqlclient20-dev

或者

sudo apt-get install libmysqlclient19-dev
于 2012-02-09T15:32:42.460 回答
2

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

于 2011-12-10T13:00:33.263 回答
2

此处未提及但已在此问题中回答的另一个选项。是您必须MySQL-python使用该--no-binary选项进行安装。这个问题比较容易找到,所以我在这里添加答案以供参考:

首先卸载当前版本MySQL-python

pip uninstall MySQL-python

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

pip install --no-binary MySQL-python MySQL-python
于 2017-01-05T14:48:29.277 回答
2

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

pip uninstall mysql-python
pip install mysql-python
于 2016-08-01T12:56:33.590 回答
0

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

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

解决方案:

1)激活你的virtualenv

2) (你的虚拟环境)pip uninstall mysqlclient

3) (你的虚拟环境)pip install mysqlclient

于 2019-11-26T04:01:18.897 回答
0

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

于 2020-10-28T12:25:02.243 回答