使用QSqlDatabase连接MySQL数据库时。在自己程序配置没有错误的情况下报这类错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase::exec: database not open
造成这样的问题大多数是libqsqlmysql.so有问题。
Qt的QSqlDatabase使用的是libqsqlmysql.so,而libqsqlmysql.so其实是对libmysqlclient.so的封装。
所以使用ldd查看下:
ldd libqsqlmysql.so
如果发现是libmysqlclient.so => not found。
差不多就可以知道了,无mysql客户端驱动,在机器上装下mysql-client。
再重编下libqsqlmysql.so,即可。
libqsqlmysql.so目录:
QT/src/plugins/sqldrivers/mysql
将里面的pro文件修改添加和LIBS和INCLUDEPATH。
重新qmake和make后,将生成好的文件拷贝到
QT/plugins/sqldrivers
再次运行程序就可以了。