2011-12-10 24 views
18

Tôi đang cố chạy ứng dụng Rails hai với Ubuntu 10.04 server, sphinx, myql2 version 0.2.7 và percona server 5.5 (Myslql 5.5). mysql2 trong irb hoạt động ok, tôi có thể kết nối với db. ứng dụng rails 2 này đang làm việc trong một máy chủ Centos khác với MySql 5.1. Khi tôi chạy:mysql2.so: libmysqlclient_r.so.15: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào như vậy

script/server -e production 

tôi nhận được:

mysql2.so: libmysqlclient_r.so.15: không thể mở được chia sẻ tập tin đối tượng: Không có tập tin hoặc thư mục

đây là những libs Tôi có:

# 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 

Làm cách nào để khắc phục sự cố?

+1

Bạn có thể định vị libmysqlclient_r.so không? nếu được tìm thấy, liên kết tượng trưng đến số này – ajreal

+0

Đối với CentOS, hãy xem: http://stackoverflow.com/questions/10529401/libmysqlclient-so-15-cannot-open-shared-object-file-no-such-file-or-directory – kenorb

Trả lời

77

Nếu bạn gặp phải lỗi này một lần nữa sau khi nâng cấp lên 12.04 (hoặc cho người đến đây sau khi googling tiêu đề của trang này sau khi nâng cấp lên 12.04), sau đây làm việc cho tôi :

gem uninstall mysql2 
gem install mysql2 

Điều này sẽ biên dịch lại đá quý bằng libmysqlclient18 và làm việc cho tôi.

Hy vọng rằng sẽ giúp ai đó ở ngoài đó.

+2

Cảm ơn, đã làm việc cho tôi. ;) – Kulgar

+0

Ý tưởng tốt hơn để cài đặt lại với lib mới nhất hơn là thử cài đặt lại phiên bản cũ. – Simmo

+1

Tương tự ở đây, đã làm việc cho tôi +1 – rhodee

2

Cài đặt thư viện máy khách mysql: apt-get install libmysqlclient16

+0

thực hiện và tôi nhận được: libmysqlclient16 đã là phiên bản mới nhất. – rtacconi

5

Bạn cần cài đặt thư viện phát triển. Cố gắng

sudo apt-get install libmysqlclient20-dev 

hoặc

sudo apt-get install libmysqlclient19-dev 
1

Tôi có lỗi này với mysql-python và giải quyết này sử dụng pip:

pip uninstall mysql-python 
pip install mysql-python 
+1

có hiệu quả đối với tôi. Cảm ơn – Jimmy

0

Một tùy chọn khác mà chưa được đề cập ở đây, nhưng đã được trả lời trong this question. Có phải bạn phải cài đặt MySQL-python với tùy chọn --no-binary. Câu hỏi này là dễ dàng hơn nhiều để tìm, vì vậy tôi thêm câu trả lời vào đây để tham khảo:

Đầu tiên gỡ bỏ cài đặt phiên bản hiện tại của bạn MySQL-python:

pip uninstall MySQL-python 

Sau đó cài đặt MySQL-python với --no-binary tham số:

pip install --no-binary MySQL-python MySQL-python 
Các vấn đề liên quan