安装 libmysqlclient-dev 5.6

安装 libmysqlclient-dev 5.6

我无法使用 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-commonlibmysqlclient18。这是因为percona-server-server-5.6依赖于libdbd-mysql-perl,而 又依赖于libmysqlclient18。这在Percona 服务器错误 1407889。这会导致一些配置过时my.cnf,但这并不是什么大问题。

相关内容