linux – 在64位CentOS上安装32位MySQL客户端库

我正在尝试在64位CentOS 5.3(基于RedHat 4.1.2)主机上运行编译的32位二进制文​​件.二进制抱怨无法找到lib mysqlclient.so.15.这样的文件存在于服务器上,但它是64位,因此不好.

我可以在主机上安装32位MySQL客户端库吗?优选地以官方方式(即,通过存储库).如果没有,那么一种hackish方式呢?

此外,这是一个适合这样一个问题的地方吗?

编辑:这是an article,确认您不能在一个过程中混合和匹配位数.但其配方不适用于CentOS.

维基百科指出,CentOS派生的RHEL能够在64位上运行完整的32位用户区……系统上已经有一些32位库 – libc等.不是MySQL.

我可以运行其他没有链接到libmysqlclient的32位二进制文​​件.

Somewhat related.

编辑:yum搜索mysql说如下:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.symnds.com
 * extras: mirror.symnds.com
 * updates: mirror.wiredtree.com
addons                                                   | 1.9 kB     00:00
base                                                     | 1.1 kB     00:00
extras                                                   | 1.9 kB     00:00
updates                                                  | 1.9 kB     00:00
Excluding Packages in global exclude list
Finished
================================ Matched: mysql ================================
mod_auth_mysql.x86_64 : Basic authentication for the Apache web server using a
                      : MySQL database.
qt-MySQL.x86_64 : MySQL drivers for Qt's SQL classes.
MySQL-bench.x86_64 : MySQL - Benchmarks and test system
MySQL-client.x86_64 : MySQL - Client
MySQL-devel.x86_64 : MySQL - Development header files and libraries
MySQL-python.x86_64 : An interface to MySQL
MySQL-server.x86_64 : MySQL: a very fast and reliable SQL database server
MySQL-shared.x86_64 : MySQL - Shared libraries
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
bytefx-data-mysql.x86_64 : MySQL database connectivity for Mono
freeradius-mysql.x86_64 : MySQL bindings for freeradius
freeradius2-mysql.x86_64 : MySQL support for freeradius
libdbi-dbd-mysql.x86_64 : MySQL plugin for libdbi
pdns-backend-mysql.x86_64 : MySQL backend for pdns
pure-ftpd.x86_64 : Lightweight,fast and secure FTP server
qt4-mysql.x86_64 : MySQL drivers for Qt's SQL classes
rsyslog.x86_64 : Enhanced system logging and kernel message trapping daemon
rsyslog-mysql.x86_64 : MySQL support for rsyslog
unixODBC.i386 : A complete ODBC driver manager for Linux
unixODBC.x86_64 : A complete ODBC driver manager for Linux
unixODBC64.x86_64 : A complete ODBC driver manager for Linux

解决方法

How do I install 32-bit libmysqlclient.so?

1.安装

您的MySQL安装可能来自不同的来源.它可能是随分发或Sun / Oracle rpm一起提供的rpm,也可能是从源代码构建的.

rpm -q --whatprovides $(which mysql)

应该告诉你包的名称

> MySQL-client -…
> mysql-5.0 ……
> mysql-community-server-client
> mysql-5.1 ……
>没有包提供/usr/bin/mysql.

在CentOS上,前两个选项最有可能. MySQL-client-5.0是一个Sun / Oracle RPM,而mysql-5.0可能来自该发行版.使用rpm -q –info< package_name>获取扩展信息并验证Vendor:行确认了该假设.

这是典型的供应商行:

Name        : MySQL-shared-community       Relocations: (not relocatable)
Version     : 5.0.96                       Vendor: Oracle and/or its affiliates

1.1来自Sun / Oracle RPM的MySQL

如果您的mysql安装来自Sun / Oracle,请转到MySQL社区服务器download page,在General Available(GA)版本中选择具有mysql 5.0版本和32位架构的版本,选择MySQL-shared-community包,下载并安装它用rpm -i.该包提供了/usr/lib/libmysqlclient.so.15库.

1.2来自CentOS的mysql

在CentOS5中,libmysqlclient属于mysql包.

yum install mysql.i386

应该做的伎俩.

在CentOS6中,它被移动到一个单独的mysql-libs包中.

2.测试

安装库后,检查是否正确解析了动态库依赖项:

ldd <your_binary> | grep libmysqlclient

应该返回类似的东西

libmysqlclient.so.15 => /usr/lib/mysql/libmysqlclient.so.15

如果您想知道提供32位版本的特定64位库的内容,可以使用rpm -q –whatprovides / path / to / your / lib64 / library来确定包的名称.然后用名称中的i686替换x86_64以获取32位对应的名称.使用yum搜索来验证包是否由您订阅的存储库提供.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...