对于ubuntu要使用QT的mysql数据库会出现
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QPSQL QPSQL7
Unable to open database
1、安装Qt
(1)运行安装包(我是把Qt安装到系统根目录下的)若想安装到系统根目录下,则执行:sudo ./qt-opensource-linux-x64-5.7.0.run
若想安装到用户根目录下,则执行:./qt-opensource-linux-x64-5.7.0.run
(2)选择安装源码组件
2、编译生成Qt连接MySql的驱动,即libqsqlmysql.so
进入Qt安装目录,找到MySql驱动源码目录
参考我的目录:/opt/Qt5.8.0/5.8/Src/qtbase/src/plugins/sqldrivers/mysql
进入Qt安装目录,找到MySql驱动源码目录
参考我的目录:/opt/Qt5.8.0/5.8/Src/qtbase/src/plugins/sqldrivers/mysql
注:/opt/Qt5.8.0/5.8/gcc_64/bin/qmake为qmake路径
/usr/include/mysql为mysql.h的路径
sudo /opt/Qt5.8.0/5.8/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro
3、 生成libqsqlmysql.so
sudo qmake
sudo make
注意make命令输出的最后几行,指出了生成的libqsqlmysql.so位置。
4、把生成libqsqlmysql.so拷贝到sqldrivers文件夹下(我是拷贝到:/opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers)
五、测试样例
到这里,Qt就已经可以连接MySql数据库了,拷贝这个程序去试试吧
pro文件中添加这句话“QT += sql”,让Qt加载数据库模块
到这里,Qt就已经可以连接MySql数据库了,拷贝这个程序去试试吧
pro文件中添加这句话“QT += sql”,让Qt加载数据库模块
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QSqlError>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //database driver
db.setHostName("localhost"); //database ip address
db.setUserName("username"); //database username
db.setPassword("password"); //database password
db.setDatabaseName("HC"); //database table name
if (true == db.open())
{
qDebug() << "succ";
}
else
{
qDebug() << "failed";
exit(0);
}
}