MySQL数据库之PyQt5 中调用MySql接口失败 ( QSqlDatabase 组件) 在Linux环境下如何修改
小标 2018-08-17 来源 : 阅读 3454 评论 0

摘要:本文主要向大家介绍了MySQL数据库之PyQt5 中调用MySql接口失败 ( QSqlDatabase 组件) 在Linux环境下如何修改 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之PyQt5 中调用MySql接口失败   ( QSqlDatabase 组件)  在Linux环境下如何修改 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

最近在跑下面这么一个代码,怎么跑都无法连通服务器,如下:

# -*- coding: utf-8 -*-

‘‘‘
    【简介】
    PyQt5中  处理database 例子
   
  
‘‘‘

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import QSqlDatabase  

class ExecDatabaseDemo(QWidget):

    def __init__(self, parent=None):
        super(ExecDatabaseDemo , self).__init__(parent)
        
        #self.db = QSqlDatabase.addDatabase(‘QSQLITE‘)
        #self.db.setDatabaseName(‘./db/database.db‘)
        # 打开数据库
        #self.db.open()
        
        self.con2 = QSqlDatabase.addDatabase(‘QMYSQL‘)
        self.con2.setHostName("67.209.xxx.xxx")
        self.con2.setDatabaseName("mysql")
        self.con2.setUserName("root")
        self.con2.setPassword("xxxxxxxx")
        a=self.con2.open()
        print(a)

    def closeEvent(self, event):
        # 关闭数据库
        self.con2.close()
    
if __name__ == ‘__main__‘:
    app = QApplication(sys.argv)
    demo = ExecDatabaseDemo()
    demo.show()
    sys.exit(app.exec_())
        

这个代码不管怎么跑总是无法连通服务器端的数据库,在Windows平台下搞了快一天还是没有搞定,这就想起来使用Linux弄一下,毕竟我还是用LInux比较上手。
 
在Windows平台下跑不通但是不报错,也没有任何提示,但是在Linux平台下就不一样了,有报错信息,如下:

 
报错信息如下:
QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
 
这个提示还是比较有用的,依据这个提示我在网上进行了一下搜索,还真有一些解答方法。
 
 
 
网上一般都是先使用这么一个步骤,如下:
 
ldd libqsqlmysql.so(ldd用来打印程序或者库文件所依赖的共享库列表)
 
于是在我的电脑上查找该文件:
sudo find / -name libqsqlmysql.so
 

 
最终发现了两个地方,一个是Python下面的PyQt5中, 一个是在  /usr/lib 下面,显而易见的是第一个文件便是我们要查找的文件。
 
 
ldd命令用于打印程序或者库文件所依赖的共享库列表
然后,查找该文件的共享库列表,直接感觉这个问题应该是共享库上有缺失。
ldd /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/libqsqlmysql.so
 
输出如下:
 

    linux-vdso.so.1 =>  (0x00007ffc533af000)
    libQt5Sql.so.5 => /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007faed77c2000)
    libQt5Core.so.5 => /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007faed7072000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007faed6e55000)
    libmysqlclient.so.18 => not found
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007faed653f000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faed6236000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007faed6020000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faed5c56000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007faed5a3c000)
    libicui18n.so.56 => /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/../../lib/libicui18n.so.56 (0x00007faed55a3000)
    libicuuc.so.56 => /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/../../lib/libicuuc.so.56 (0x00007faed51eb000)
    libicudata.so.56 => /usr/local/lib/python3.5/dist-packages/PyQt5/Qt/plugins/sqldrivers/../../lib/libicudata.so.56 (0x00007faed3808000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007faed3604000)
    libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007faed3402000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007faed30f1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007faed7c1d000)
    libssl.so.10 => not found
    libcrypto.so.10 => not found
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007faed2e81000)

 
可以看到,上面显示一个有三个共享库是无法查找到的。 

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 3 不喜欢 | 1
看完这篇文章有何感觉?已经有4人表态,75%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved