Ubuntu18.04下Qt5.9.8连接mysql数据库失败的解决办法

Ubuntu18.04下Qt5.9.8连接mysql数据库失败的解决办法
问题:

连接mysql数据库时,出现如下 提示:
  QSqlDatabase: QMYSQL driver not loaded
  QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
  db open err: “Driver not loaded Driver not loaded”
解决办法:

1、sudo apt-get install libmysqlclient-dev
  2、进入QT安装目录的源码目录(如果安装 时没有选择源码,重新安装下),找到MySql驱动源码目录
    如:/opt/Qt5.9.8/5.9.8/Src/qtbase/src/plugins/sqldrivers/mysql
  3、用Qt Creator打开mysql.pro文件,修改pro文件如下:

4、编译mysql工程,会在上一级目录下的plugin/sqldrivers目录下生成libqsqlmysql.so文件,将该文件拷贝到

/opt/Qt5.9.8/5.9.8/gcc_64/plugins/sqldrivers目录下就可以了。

注:如果编译时出现”qtsqldrivers-config.pri: No such file or directory“找不到的情况,上一级目录打开qsqldriverbase.pri

文件,把include( s h a d o w e d ( shadowed( shadowed(PWD)/qtsqldrivers-config.pri)注释掉

QT = core core-private sql-private
  # For QMAKE_USE in the parent projects.
  #include( s h a d o w e d ( shadowed( shadowed(PWD)/qtsqldrivers-config.pri)
  include( s h a d o w e d ( shadowed( shadowed(PWD)/configure.pri)
  PLUGIN_TYPE = sqldrivers

执行命令:make

注意make命令输出的最后几行,指出了生成的libqsqlmysql.so位置。

4、把生成libqsqlmysql.so拷贝到sqldrivers文件夹下(我是拷贝到:/home/dgp/Qt5.9.8/5.9.8/gcc_64/plugins/sqldrivers/libqsqlmysql.so )

五、测试样例
  到这里,Qt就已经可以连接MySql数据库了,拷贝这个程序去试试吧。

pro文件中添加这句话“QT += sql”,让Qt加载数据库模块

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7
8 int main(int argc, char *argv[])
9 {
10 QCoreApplication app(argc, argv);
11 QSqlDatabase db = QSqlDatabase::addDatabase(“QMYSQL”); //database driver
12 db.setHostName(“localhost”); //database ip address
13 db.setUserName(“username”); //database username
14 db.setPassword(“password”); //database password
15 db.setDatabaseName(“HC”); //database table name
16 if (true == db.open())
17 {
18 qDebug() << “succ”;
19 }
20 else
21 {
22 qDebug() << “failed”;
23 exit(0);
24 }
25 return app.exec();
26 }

参考链接    
https://www.cnblogs.com/zhangnianyong/p/11458033.html

https://forum.qt.io/topic/59449/qsqldatabase-qmysql-driver-not-loaded-build-mysql-plugin

https://www.linuxidc.com/Linux/2016-12/138574.htm

你可能感兴趣的:(Ubuntu18.04下Qt5.9.8连接mysql数据库失败的解决办法)