📢 最新动态(2025年7月)
Qt 6.7 近期正式发布,对MySQL驱动支持进行了优化,新增了异步查询和连接池管理功能,性能提升约20%!如果你还在用旧版本,现在是时候升级啦~
Qt默认支持的数据库驱动包括SQLite、ODBC等,但MySQL作为最流行的开源数据库之一,需手动配置驱动才能使用,别担心,下面教你3种方法搞定它!
如果你的Qt安装包自带MySQL驱动(比如Qt官方安装器勾选了MySQL组件),直接调用即可:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setUserName("root"); db.setPassword("123456"); db.setDatabaseName("test_db"); if (!db.open()) { qDebug() << "连接失败😢:" << db.lastError().text(); } else { qDebug() << "MySQL连接成功🎉!"; }
✅ 优点:简单快捷
❌ 缺点:部分Qt版本可能未包含
安装MySQL开发库
sudo apt-get install libmysqlclient-dev
brew install mysql-client
编译Qt MySQL插件
进入Qt源码目录(如~/Qt/6.7.0/Src/qtbase/src/plugins/sqldrivers
),执行:
qmake -- MYSQL_PREFIX=/usr/local/mysql # 替换为你的MySQL路径 make make install
将生成的libqsqlmysql.so
(或.dll
)复制到
Qt/6.7.0/gcc_64/plugins/sqldrivers
💡 提示:遇到QMYSQL driver not loaded
?检查是否缺少libmysqlclient.dll
(Windows需放入exe同级目录)
如果上述方法失败,可通过ODBC桥接:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("DRIVER={MySQL ODBC 8.0 Driver};SERVER=127.0.0.1;DATABASE=test;UID=root;PWD=123456");
⚠️ 注意:需先配置ODBC数据源
mysql.h
解决:确保MYSQL_PREFIX
路径正确,或手动指定:
qmake INCLUDEPATH+=/usr/include/mysql LIBS+=-L/usr/lib/mysql
Authentication plugin 'caching_sha2_password'
解决:MySQL 8.0+默认使用新认证方式,修改用户密码为旧模式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
QSqlDatabase::connectOptions("POOL_MAX=10;POOL_TIMEOUT=60");
QSqlQuery::execAsync()
避免界面卡顿 方法 | 适用场景 | 难度 |
---|---|---|
预编译驱动 | Qt官方安装器自带 | |
手动编译 | 需要定制化配置 | |
ODBC桥接 | 驱动编译失败时 |
选择适合你的方案,轻松玩转Qt+MySQL!遇到问题?欢迎在评论区留言讨论~ 💬
(注:本文测试环境为Qt 6.7 + MySQL 8.0,其他版本可能略有差异)
本文由 来涵煦 于2025-07-27发表在【云服务器提供商】,文中图片由(来涵煦)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/456404.html
发表评论