ubuntu18.04 Qt5.13.0连接mysql
使用Qt连接mysql 直接报错
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("xiaozhu");
db.setUserName("root");
db.setPassword("123456");
db.setPort(3306);
if (!db.open()){
qDebug()<< "Failed to conect root mysql admin";
}else {
qDebug()<<"open" ;
}
运行时报错
QSqlDatabase: QMYSQL driver not loaded
这是因为Qt 的QMYSQL 驱动不兼容或者不存在,需要重新编译
编译mysql驱动
找到mysql的源码
PS:
其中/home/shine/software/Qt
则是我的Qt安装的位置
mysql 项目源码的位置
/home/shine/software/Qt/5.13.0/Src/qtbase/src/plugins/sqldrivers/mysql
则是在项目文件夹
打开项目文件夹里README文件
You will need the MySQL development headers and libraries installed
before compiling this plugin.
See the Qt SQL documentation for more information on compiling Qt SQL
driver plugins (sql-driver.html).
查看帮助文档
根据提示查找sql-driver.html
/home/shine/software/Qt/Docs/Qt-5.13.0/qtsql
文件夹下找到sql-driver.html
打开网页
搜索 How to Build the QMYSQL Plugin on Unix and macOS
结果如下图
编译项目
PS:
其中/home/shine/software/Qt
则是我的Qt安装的位置
切换到源码目录
cd /home/shine/software/Qt/5.13.0/Src/qtbase/src/plugins/sqldrivers
编译项目
qmake -- MYSQL_PREFIX=/usr/local
ps:
/usr/local
是mysql安装目录
ps:
如果qmake的执行出问题的话就是qmake环境变量没有配置,可以改成以下命令行:即执行特定文件夹下的qmake
/home/shine/software/Qt/5.13.0/gcc_64/bin/qmake -- MYSQL_PREFIX=/usr/local
编译完成后在/home/shine/software/Qt/5.13.0/Src/qtbase/src/plugins/sqldrivers
目录下会出现libqsqlmysql.so.debug
和libqsqlmysql.so
两个文件 把它们拷贝到/home/shine/software/Qt/5.13.0/gcc_64/plugins/sqldrivers
覆盖原文件,然后就可以连接了