QT MySQL数据库连接与测试
2017-03-28 15:13
537 查看
其实本文章根本没有给别人看的必要,因为一去二三里的博客里面早已经讲解得非常详细了,但是我在学习的过程中(可能是因为自己的愚笨)还是遇到了一些问题,故而和大家分享我遇到的问题,希望这对后来人有帮助(我的QT版本是5.5 mingw492_32):
1、下载和安装MySQL,这个我就不讲了,我这个毕竟是QT的博客,大家可以到网上找找相关文章;
2、我用的MySQL管理工具是Navicat for MySQL,这个管理工具很好用,具体安装我也不讲了;
3、将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录,如下图:
将此dll文件拷贝到如下图所示文件夹下:
4、打开QT,并新建工程,首先,加入相关头文件:
加入相关代码(以下代码都是从一去二三里的博客中直接搬过来的,除了相关配置外,我个人没有经过任何改动,所以希望看到更高水准博客的看官,请移步此博客中:http://blog.sina.com.cn/s/blog_a6fb6cc90101h1gr.html):
我这里访问的不是本机而是另一台电脑的MySQL数据库,可能需要做一些配置(比如关闭防火墙或者让防火墙对3306进行过滤),这里我就不去和大家探讨安全不安全的事情了,如果有这方面经验的看官,可以请教下。
5、说明一下上面的参数:
IP、端口号、用户名、密码就不用多说明了,数据库名称是需要连接到哪一个数据库中(我第一次的时候误把连接名写上去了),下面是Navicat中的截图和说明:
下图是表user的内容:
6、不出意外的话,会出现这样的结果:
而出现的意外,可能是:
1)is not allowed to connect to this MySQL server
没有开放权限给计算机,需要关闭防火墙或者对3306端口进行相关过滤
2)QSqlDatabase:QMySQL driver not loaded
没有MySQL驱动,按照第3步来做就行了
1、下载和安装MySQL,这个我就不讲了,我这个毕竟是QT的博客,大家可以到网上找找相关文章;
2、我用的MySQL管理工具是Navicat for MySQL,这个管理工具很好用,具体安装我也不讲了;
3、将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录,如下图:
将此dll文件拷贝到如下图所示文件夹下:
4、打开QT,并新建工程,首先,加入相关头文件:
#include <qdebug.h> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlDriver> #include <QtSql/QSqlError> #include <QtSql/QSqlQuery>
加入相关代码(以下代码都是从一去二三里的博客中直接搬过来的,除了相关配置外,我个人没有经过任何改动,所以希望看到更高水准博客的看官,请移步此博客中:http://blog.sina.com.cn/s/blog_a6fb6cc90101h1gr.html):
void MainWindow::mySqlTest() { //输出可用数据库 qDebug()<<"available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug()<<driver; //打开MySQL QSqlDatabase data_base = QSqlDatabase::addDatabase("QMYSQL"); data_base.setHostName("192.168.50.28"); //设置主机地址 data_base.setPort(3306); //设置端口 data_base.setDatabaseName("test"); //设置数据库名称 data_base.setUserName("user"); //设置用户名 data_base.setPassword("123456"); //设置密码 if(!data_base.open()) qDebug()<<"failed to connect to user"; else qDebug()<<"success"; qDebug()<<data_base.lastError().text(); QString select_all_sql = "select * from user"; //查询所有数据 QSqlQuery sql_query; sql_query.prepare(select_all_sql); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { while(sql_query.next()) { int id = sql_query.value(0).toInt(); QString name = sql_que aa34 ry.value(1).toString(); QString sex = sql_query.value(2).toString(); int Age = sql_query.value(3).toInt(); QString psd = sql_query.value(4).toString(); qDebug()<<QString("Id:%1 Name:%2 Sex:%3 Age:%4 Password:%5").arg(id).arg(name).arg(sex).arg(Age).arg(psd); } } }
我这里访问的不是本机而是另一台电脑的MySQL数据库,可能需要做一些配置(比如关闭防火墙或者让防火墙对3306进行过滤),这里我就不去和大家探讨安全不安全的事情了,如果有这方面经验的看官,可以请教下。
5、说明一下上面的参数:
IP、端口号、用户名、密码就不用多说明了,数据库名称是需要连接到哪一个数据库中(我第一次的时候误把连接名写上去了),下面是Navicat中的截图和说明:
下图是表user的内容:
6、不出意外的话,会出现这样的结果:
而出现的意外,可能是:
1)is not allowed to connect to this MySQL server
没有开放权限给计算机,需要关闭防火墙或者对3306端口进行相关过滤
2)QSqlDatabase:QMySQL driver not loaded
没有MySQL驱动,按照第3步来做就行了
相关文章推荐
- 在Qt中连接SQLite和MySQL数据库
- Windows环境下利用Qt连接MYSQL数据库
- Qt数据库操作 连接SQLite和MySQL数据库实例
- android开发 MyEclipse下测试连接MySQL数据库
- Qt 连接MySQL数据库
- Qt 4下连接MySQL数据库
- Qt连接MySql数据库
- MyEclipse使用Java 通过JDBC连接MySQL数据库的基本测试
- MyEclipse使用Java 通过JDBC连接MySQL数据库的基本测试
- Qt远程连接MySql数据库
- Windows环境下利用Qt连接MYSQL数据库
- ubuntu linux下使用Qt连接MySQL数据库的方法
- ubuntu linux下使用Qt连接MySQL数据库的方法
- php连接mysql数据库连接测试文件
- Qt远程连接MySql数据库
- Windows环境下利用Qt连接MYSQL数据库
- ubuntu linux 下使用Qt连接MySQL数据库
- Qt连接MySQL数据库[环境配置]
- 详解Ubuntu10.10下Qt连接Mysql数据库
- Unity3d 连接MySQL数据库测试成功