我无法使用 mysql ruby gem,因为我收到此错误:
MySQL 客户端库版本不正确!此 gem 是针对 5.6.15 编译的,但客户端库是 5.5.34。(运行时错误)
apt-get 正在安装 libmysqlclient-dev-5.5
$ sudo apt-get install libmysqlclient-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libmysqlclient-dev
0 upgraded, 1 newly installed, 0 to remove and 41 not upgraded.
Need to get 1,397 kB of archives.
After this operation, 5,629 kB of additional disk space will be used.
Get:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates/main libmysqlclient-dev amd64 5.5.34-0ubuntu0.12.04.1 [1,397 kB]
Fetched 1,397 kB in 0s (11.8 MB/s)
Selecting previously unselected package libmysqlclient-dev.
(Reading database ... 63296 files and directories currently installed.)
Unpacking libmysqlclient-dev (from .../libmysqlclient-dev_5.5.34-0ubuntu0.12.04.1_amd64.deb) ...
Processing triggers for man-db ...
Setting up libmysqlclient-dev (5.5.34-0ubuntu0.12.04.1) ...
如何安装 libmysqlclient-dev 5.6 版本?
我正在使用 Ubuntu 12.04。
答案1
如果您想要官方方式,您必须升级到 12.10 或更高版本。
但间接的方式是 Percona Server 与 XtraDB 提供 libmysqlclient-dev 5.6版本。因此,如果您添加其 PPA,它将为您提供安装 libmysqlclient-dev 5.6 的方法。
要添加它,请在您的终端中执行以下操作
gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
gpg -a --export CD2EFD2A | apt-key add -
sudo sh -c 'echo "deb http://repo.percona.com/apt precise main" >> /etc/apt/sources.list.d/percona.list'
然后 sudo apt-get update
然后重试。
答案2
我在 Ubuntu 14.04 Trusty 上遇到了同样的问题。免责声明:我不是这方面的专家,但这是我安装它的方法。
我认为需要的图书馆是libperconaserverclient18.1-dev
。
安装完这个后,mysql2 gem 安装进一步进行,但是我收到以下错误:ERROR: Failed to build gem native extension
。在日志中我看到:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
make: *** [mysql2.so] Error 1
解决这个问题的方法是安装libssl-dev
。我还发现我安装了 2 个意外/不需要的包,mysql-common
和libmysqlclient18
。这是因为percona-server-server-5.6
依赖于libdbd-mysql-perl
,而 又依赖于libmysqlclient18
。这在Percona 服务器错误 1407889。这会导致一些配置过时my.cnf
,但这并不是什么大问题。