报错内容:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
测试代码
void MySQLUtils::test()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("kylin");
db.setUserName("kylin");
db.setPassword("123456");
bool ok = db.open();
if (ok){
qDebug()<<"success";
}
else {
qDebug()<<"failed";
}
}
原因:
qt没找到mysql驱动
解决方案:
重新编译mysql库文件
-
安装mysql
sudo apt-get install mysql-server
udo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev -
查看mysql.h文件所在位置
whereis mysql
locate mysql.h -
查找 libmysqlclient.so 所在路径
locate libmysqlclient.so -
编译mysql
cd Qt安装位置/5.12.12/Src/qtbase/src/plugins/sqldrivers/mysql
修改mysql.pro文件为刚刚我们找到的两个位置
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
然后sudo qmake这个mysql.pro即可。