摘要

> flask开发相关功能,在本地测试没有问题,但是放到线上环境却报错 `ImportError: libmysqlclient.so.16: cannot open shared object file: No such file or directory`

> 检查了下发现在 `/usr/lib64/mysql` 下面存在`libmysqlclient.so.18`文件(uanme -a 确认是64位系统)

---

## 解决过程

发现问题,不是自己遇到的也没有解决办法,那就网上查呗,发现大家的思路:

+ copy `/usr/lib64/mysql/libmysqlcient.so.18 `到`/usr/lib64/libmysqlclient.so.16`

+ 在`/usr/lib64/`下面建立libmysqlclient.so.16的软连接

+ 在`/etc/ld.so.conf.d/mysql-x86_64.conf`里面添加 /usr/lib64/mysql

等等思路都尝试之后发现还是还是没有解决。

继续思考:

环境中明明有`libmysqlclient.so.18` 为何要去找`libmysqlclient.so.16`,

那就先考虑`libmysqlclient.so.18`是从和而来。 在报错中提到了`_mysql.so` , locate 找到`_mysql.so` 发现是在`/root/.pyenv/versions/flask2/lib/python2.7/site-packages/_mysql.so`,好项目有什么问题,找`mysql.so` 发现如下:

```bash

root@pts/1 # locate mysql.so

/root/.pyenv/versions/2.7.12/envs/flask2/lib/python2.7/site-packages/_mysql.so

/usr/lib64/php/modules/mysql.so

/usr/lib64/php/modules/pdo_mysql.so

/usr/lib64/php-zts/modules/mysql.so

/usr/lib64/php-zts/modules/pdo_mysql.so

/var/lib/mysql/mysql.sock

```

猜想应该和和PHP有关系,想起来本地环境和线上环境安装的PHP不一致

本地的PHP是通过 `webtatic` 安装的,而服务器上面的是通过 `remi`安装的, 在本地执行`yum list |grep libmysql`:

```bash

[root@i-bskmtj6q ~]# yum list |grep libmysql

libmysqlclient16.x86_64 5.1.69-1.w6 webtatic

libmysqlclient16-devel.x86_64 5.1.69-1.w6 webtatic

```

发现libmysqlclient16 是来自于 `webstatic`, 故卸载之前通过remi安装的PHP,采用webstatic方式安装

```bash

## remove remi

yum remove php php-fpm php-mysqlnd php-common

## install from webstatic

yum install php56w php56w-mysql php56w-fpm php56w-common

```

最后验证导入 MySQLdb 没有报错,一切正常

---

## 附加:

上文中提到了 `webtatic` 和 `remi` 两个不同的安装源,具体的区别可以参考链接

Centos下YUM安装PHP的两种方式 [http://www.jianshu.com/p/2ff15676f902](http://www.jianshu.com/p/2ff15676f902)

---

----------------------------------------------***更多精彩请关注***-------------------------------------

![公众号: DailyJobOps](http://upload-images.jianshu.io/upload_images/1394001-cb23ed39087edab0.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/200)

python导入mysqldb_Python导入MySQLdb报错相关推荐

  1. python导入requests库一直报错原因总结_python pip 安装库文件报错:pip install ImportError: No module named _internal...

    centos6,python3,通过pip安装pycurl出现报错提示 Centos6.7系统,python3.6.7,通过 pip 安装pycurl出现报错: __main__.Configurat ...

  2. Pycharm如何导入python文件,及出现报错解决办法

    导入及解决报错 导入py文件 解决报错问题 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女 ...

  3. JMeter 报告监听器导入.jtl结果文件报错解决方案

    JMeter 报告监听器导入.jtl结果文件报错解决方案   by:授客 QQ:1033553122   1. 问题描述 把jmeter压测时生成的 .jtl结果文件导入监听器报告中,弹出如下错误提示 ...

  4. Eclipse中导入项目后js报错解决方法

    Eclipse中导入项目后js报错的原因与解决方法 在我们将项目导入Eclipse后,配置好各种编译条件.加载好jar包.配置好tomcat后发现项目还是报错,(前提是项目本身并没有错误,而是我们在初 ...

  5. idea项目依赖导入失败_解决idea导入项目后依赖报错问题

    1.在idea首页 Confige-->setting-->build,execution,deployment-->buildTool-->maven-->work o ...

  6. 在eclipse中导入工程后@Override报错

     在eclipse中导入工程后@Overide报错 到入工程后,所有的@Override都报如下错误: Multiple markers at this line  - The method ge ...

  7. 解决idea导入项目后依赖报错问题

    解决idea导入项目后依赖报错问题 参考文章: (1)解决idea导入项目后依赖报错问题 (2)https://www.cnblogs.com/dayandday/p/10607195.html (3 ...

  8. 导入 sun.net.TelnetInputStream; 报错

    // 对于导入 sun.net.TelnetInputStream; 报错 是权限不足 myeclise 默认不是使用sun 下面的额工具类 也可以自己建立一个 TelnetInputStream 继 ...

  9. 图解Myeclipse 导入Java Web项目报错的解决办法听语音

    图解Myeclipse 导入Java Web项目报错的解决办法听语音 https://jingyan.baidu.com/article/046a7b3e953ef3f9c27fa93d.html

  10. Android之Android Studio三种方式导入外部资源 以及 报错处理

    Android Studio三种方式导入外部资源 以及 报错处理 android studio提供了三种方式导入外部资源: 1. Library dependency – 在线添加.需联网下载 . 2 ...

最新文章

  1. Java的表白程序_java表白程序
  2. LiveVideoStackCon2021音视频技术大会北京站Day2
  3. git安装和初步使用
  4. linux6.0 安装教程,CentOS 6.0安装步骤
  5. 探索Windows Azure 监控和自动伸缩系列1 - 连接中国区Azure
  6. 配置管理-CMMI的五个等级
  7. Linux配置jdk
  8. Google 已将“xxxx”标记为恶意扩展程序并阻止安装,解决方案
  9. oracle数据库影响网络延时,磁盘排序对Oracle数据库性能的影响-通信/网络-与非网...
  10. 毕设/私活/必备,一个挣钱的标准开源前后端分离【springboot+vue+redis+Spring Security】脚手架--若依框架
  11. SQL数据库练习题以及答案(46例题)
  12. sqlite 多条件查询
  13. 开源视频云转码 m3u8_8种开源视频游戏
  14. 立志让国内用户不再依赖国外DLP技术 天空卫士发布UCS新品
  15. C语言中getch()的用法
  16. 深度报道 | 5G兵临城下:AIoT将面临哪些变革和挑战?
  17. 华为OD机试题:黑板上的数涂颜色
  18. Wannafly挑战赛20-染色
  19. 十、Java接口——特殊的抽象类
  20. 论文阅读:Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera

热门文章

  1. C#属性的声明和使用演示源码片段
  2. 一次性搞懂JavaScript正则表达式之语法
  3. 一张图理解JS的原型(prototype、_proto_、constructor的三角关系)
  4. docker 磁盘问题:device or resource busy
  5. OpenCart 之 CSV 格式商品导入 – 如何导入商品主图片和附加图片?
  6. 同一个闭区间上有界变差函数的和与积都是有界变差函数
  7. 智能安全实验室-Defendio杀马2.4.0.420-实时防护-内存防护、新浏览器导航界面...
  8. SUN服务器清除所有报错信息,SUN服务器可能遇到的问题总结.doc
  9. 智能情绪分析技术_石化缘推荐:炼化企业智能机器人巡检技术应用前景分析!...
  10. opencv拖动进度条_OpenCV GUI基本操作,回调函数,进度条,裁剪图像等-阿里云开发者社区...