CentOS7源码编译mysql-shell 1.0.11缺失libmysqlclient 5.7+求助
解决CentOS7编译MySQL Shell 1.0.11找不到libmysqlclient的问题
我来帮你搞定这个困扰!在CentOS 7的默认YUM源里确实没有单独命名为libmysqlclient的包,你需要的这个依赖其实包含在MySQL官方提供的开发包中,下面是具体的解决步骤:
步骤1:添加MySQL官方YUM源
CentOS 7的默认源没有MySQL 5.7+的开发包,所以首先要添加官方的YUM仓库:
sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
这个包会配置好MySQL 5.7版本的官方源,正好满足你需要的libmysqlclient 5.7+版本要求。
步骤2:安装对应的开发包
安装mysql-community-devel包,它包含了编译所需的libmysqlclient库文件和头文件:
sudo yum install mysql-community-devel
你之前安装的mysql++、mysql++-devel是第三方的C++封装库,并非MySQL官方的客户端开发依赖,所以无法满足编译MySQL Shell的需求。
步骤3:验证依赖是否生效
安装完成后,可以通过以下命令确认libmysqlclient是否存在:
rpm -ql mysql-community-devel | grep libmysqlclient
如果输出包含libmysqlclient.so相关文件,说明依赖已经正确安装,此时重新运行CMake构建MySQL Shell应该就能正常识别到依赖了。
备选方案:手动编译MySQL客户端库(不推荐)
如果不想添加官方YUM源,你也可以手动下载MySQL 5.7的源码包,编译并安装客户端库,然后在CMake构建时通过以下参数指定路径:
cmake .. -DMYSQLCLIENT_INCLUDE_DIR=/path/to/mysql/include -DMYSQLCLIENT_LIBRARIES=/path/to/mysql/lib/libmysqlclient.so
不过这种方式操作繁琐,容易出现版本兼容问题,优先推荐使用官方YUM源的方法。
内容的提问来源于stack exchange,提问作者Crackerman
相关产品推荐
相关产品推荐

