在Qt中使用MySQL Qt学习:在Qt中使用MySQL

Qt学习:在Qt中使用MySQL


  
  
  1. QSqlDatabase: QMYSQL driver not loaded
  2. QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

意思是QMSQL驱动没有加载。

那么尝试加载驱动呢?


  
  
  1. QPluginLoader loader;
  2. loader.setFileName( "C:\\Qt\\Qt5.8.0\\5.8\\mingw53_32\\plugins\\sqldrivers\\qsqlmysqld.dll"); // 报“找不到指定模块”
  3. qDebug()<<loader.load();
  4. 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、连接代码


  
  
  1. QSqlDatabase db = QSqlDatabase::addDatabase( "QMYSQL");
  2. db.setHostName( "localhost");
  3. db.setPort( 3306);
  4. db.setDatabaseName( "test");
  5. db.setUserName( "root");
  6. db.setPassword( "");
  7. if(!db. open())
  8. return false;
  9. return true;

7、数据库编码选择

utf8_general_ci
  
  

8、qt中在数据库中写入中文会报错的问题

qt中要进行相应的设置,在打开数据库前进行设置


  
  
  1. QTextCodec *codec = QTextCodec::codecForName( "UTF-8");
  2. QTextCodec::setCodecForLocale(codec);

http://www.qter.org/portal.php?mod=list&catid=18

发布了8 篇原创文章 · 获赞 3 · 访问量 1930
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wzj0808/article/details/82218216

Qt说是自带MySQL驱动,但是连接数据库时却报错:

猜你喜欢

转载自blog.csdn.net/weixin_44017727/article/details/100067055