问题描述
我正在尝试使用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