原
Qt学习:在Qt中使用MySQL
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
Qt说是自带MySQL驱动,但是连接数据库时却报错:
-
QSqlDatabase: QMYSQL driver
not loaded
-
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
意思是QMSQL驱动没有加载。
那么尝试加载驱动呢?
-
QPluginLoader loader;
-
loader.setFileName(
"C:\\Qt\\Qt5.8.0\\5.8\\mingw53_32\\plugins\\sqldrivers\\qsqlmysqld.dll");
// 报“找不到指定模块”
-
qDebug()<<loader.load();
-
qDebug()<<loader.errorString();
不管是加载qsqlmysqld.dll,还是qsqlmysql.dll都是不行的。
如果在debug模式下加载qsqlmysql.dll则会报不能在debug版本中混用release的dll,那么推测加载路径是没问题的,可能是此dll不能使用。究竟为什么不管用,不知道。
所以,qt虽然说自带mysql的驱动,但是你还是得给他添加驱动。
简单的说,必须在:
C:\Qt\Qt5.8.0\5.8\mingw53_32\bin
中添加一个dll,名为:libmysql.dll
怎么获得这个dll?如果已经有了则直接添加就是;如果没有则安装32位版本的mysql,在安装的时候选择全功能安装,则会生成这个dll。
1、安装mysql32位版本
在http://www.qter.org/portal.php?mod=view&aid=10中可以获得mysql安装文件。
2、安装步骤
扫描二维码关注公众号,回复:
9642500 查看本文章
3、查看新建的mysql数据库
>先进入mysql\bin中双击运行mysqld.exe
>通过命令行查看数据库。初始密码为空,直接回车就好
4、拷贝libmysql.dll
位于MySQL安装目录下面lib文件夹下:
C:\MySQL\lib\libmysql.dll
将其拷贝到:
C:\Qt\Qt5.8.0\5.8\mingw53_32\bin
5、说明
注意:
(1)如果你不连接本地数据库,则只要将此dll拷贝到对应路径(如果已有保存此dll),就可以连接远程数据库了;
(2)不管32位还是64位的mysql,都可以连接。
6、连接代码
-
QSqlDatabase db = QSqlDatabase::addDatabase(
"QMYSQL");
-
-
db.setHostName(
"localhost");
-
db.setPort(
3306);
-
db.setDatabaseName(
"test");
-
db.setUserName(
"root");
-
db.setPassword(
"");
-
-
if(!db.
open())
-
return
false;
-
return
true;
7、数据库编码选择
utf8_general_ci
8、qt中在数据库中写入中文会报错的问题
qt中要进行相应的设置,在打开数据库前进行设置
-
QTextCodec *codec = QTextCodec::codecForName(
"UTF-8");
-
QTextCodec::setCodecForLocale(codec);
http://www.qter.org/portal.php?mod=list&catid=18
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
Qt说是自带MySQL驱动,但是连接数据库时却报错: