#include “QSqlDatabase”
#include “glog/logging.h”
int main() {
/* Select database type */
auto mysql_db = QSqlDatabase::addDatabase(“QMYSQL”);
/* Set connection parameter and credentials */
mysql_db.setHostName("localhost");
mysql_db.setPort(3306); //default port
mysql_db.setDatabaseName("test");
mysql_db.setUserName("root");
mysql_db.setPassword("iop890IOP*()");
auto is_database_open = mysql_db.open();
if (is_database_open) {
LOG(INFO) << "open sucess";
}
}
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
qt-opensource-linux-x64-5.14.1.run安装的qt可能只支持有限的几种数据库,缺少mysql的支持,按照下文操作添加mysql数据的支持。
操作
下载对应版本的源码 http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.14/5.14.1/single/qt-everywhere-src-5.14.1.tar.xz
sudo apt-get install libmysqlclient-dev -y
export PATH=/opt/Qt5.14.1/5.14.1/gcc_64/bin/:$PATH
tar xf qt-everywhere-src-5.14.1.tar.xz
cd qt-everywhere-src-5.14.1/qtbase/src/plugins/sqldrivers
qmake
Running configuration tests…
Done running configuration tests.
Configure summary:
Qt Sql Drivers:
DB2 (IBM) … no
InterBase … no
MySql … yes
OCI (Oracle) … no
ODBC … no
PostgreSQL … no
SQLite2 … no
SQLite … yes
Using system provided SQLite … no
TDS (Sybase) … no
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run ‘make install’.
Qt will be installed into ‘/opt/Qt5.14.1/5.14.1/gcc_64’.
Prior to reconfiguration, make sure you remove any leftovers from
the previous build.
make
sudo cp ./plugins/sqldrivers/libqsqlmysql.so /opt/Qt5.14.1/5.14.1/gcc_64/plugins/sqldrivers/
注意替换/opt/Qt5.14.1/5.14.1/的目录,我这里启用了mysql,其他的数据可以安装对应的启动也可以编辑,然后复制到对应的目录下。
重新运行程序。
I0225 20:50:21.861747 885 testSQL.cpp:40] open sucess