在Linux下使用Qt连接MySQL的时候运行如下代码:
QSqlDatabase::addDatabase("QMYSQL");
经常遇到以下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QPSQL QPSQL7
主要是因为MySQL驱动的问题,在Qt安装路径下 : ../Qt5.8.0/5.8/gcc_64/plugins/sqldrivers
没有看到libqsqlmysql.so文件,Qt一般默认安装的,将该驱动文件放到改路径下就OK了。
但是发布程序的时候很多时候目标机器吧并没有该目录,所以就出现驱动加载失败的错误。
解决参考如下:
第一步、在程序目录下创建 plugins/sqldrivers 目录,将 ../Qt5.5.1/5.5/gcc_64/plugins/sqldrivers/libqsqlmysql.so拷贝进来;
第二步、在程序主函数中添加该库搜索路径:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::addLibraryPath("./plugins");
Widget w;
w.show();
qDebug()<<QCoreApplication::libraryPaths ();
return a.exec();
}