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

rta*_*oni 24 mysql ubuntu libmysql mysql2 ruby-on-rails-2

我正在尝试使用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 
Run Code Online (Sandbox Code Playgroud)

我明白了:

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
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

小智 89

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

gem uninstall mysql2
gem install mysql2
Run Code Online (Sandbox Code Playgroud)

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

希望能帮到那里的人.

  • 我从rails应用程序目录中"捆绑了exec gem uninstall mysql2",然后是"bundle". (10认同)
  • 我最近将我的ubuntu升级到16.04,这是我必须做的才能使我的应用程序工作+1 (2认同)

Bil*_*per 7

您需要安装开发库.尝试

sudo apt-get install libmysqlclient20-dev
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install libmysqlclient19-dev
Run Code Online (Sandbox Code Playgroud)