Qt程序连接mysql数据库必须得有驱动插件,新的版本都需要自行从源码去编译,具体怎么做网上有很多这方面的资料。而我使用的是5.12.0版本,自带了mysql的驱动,却还是不能连接数据库。报的错误是:
“
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
”
这是调用这一句“db = QSqlDatabase::addDatabase("QMYSQL");”触发的
而执行:
qDebug() << QSqlDatabase::drivers();
打出来的是:
("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
这就表明驱动已经安装了。
到底是什么原因呢?
最后才发现没有把libmysql.dll和libmysqld.dll拷贝到编译器的bin目录下面(比如我的是C:\Qt\Qt5.12.0\5.12.0\msvc2017\bin)。在部署项目时,也要把这两个dll(一个是debug版本,一个是release版本)带上才行。