升级mysql后,python操作mysql报错:import _mysql ImportError: libmysqlclient.so.18: cannot open shared object

0x00 报错描述

之前把mysql从5.6升级到了5.7,然后在使用python安装或者操作mysql数据库的时候报了一个错:“import _mysql ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory”

0x01 解决方法

百度了下,说是MySQLdb是需要调用MySQL的c动态链接库。想了下,可能是最近刚好把自动化测试的数据库被迁到另外一个服务器,脚本所在服务器的MySQL也被卸载了,然后找不到那个库。

解决方法1:

  1. 先找找系统中有没有这个库:find -name libmysqlclient.so.18
  2. 将libmysqlclient.so.18 链接到/usr/lib64中:ln -s /usr/java/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18

解决方法2(成功):

  1. 卸载虚拟环境:rm -rf venv/
  2. 重新安装python依赖库:pip install -r req.txt

0x02 参考文章

https://www.cnblogs.com/minerrr/p/9722148.html