我终于连接成功了,哈哈哈哈,五天了,终于成功了
刚开始一直在通过qt直接连MySQL数据库,谁知从来没有成功,各种装数据库,各种编译驱动,全都无果,就在我将要放弃的时候,看到一个人用ODBC连接数据库成功了,我看到了希望,可是试了好几次都没有成功,我一度怀疑我不适合干这行,就在我安慰自己再尝试一次的时候,我终于成功了,好高兴。
下面讲一下我成功的过程:
1. MySQL安装
MySQL Installer下载:/downloads/installer/
我下载的是这个:
安装的时候选择自定义安装,安装MySQL Server 和 Connector/ODBC两个模块就可以,注意,Connector/ODBC有64位和32位可选,这里如何选择呢?你应该看你的Qt是32位的还是64位的,如果你用的windows操作系统,那么你大概率用的32位的,所以你应该安装32位的Connector/ODBC,如果你不确定,可以打开你的Qt Creator软件,在最上方选择帮助—>About Qt Creator即可查看
多说一句,我把我的MySQL数据库路径加入了环境变量,我不知道这起没起作用,你们暂且试试。
2. Qt安装
Qt下载:https://www.qt.io/offline-installers
我下载的是:
安装的时候我选择的是全部安装。
3. ODBC连接
安装完ODBC之后,会出现64位和32位两个版本,我选择的是32位的,打开之后,依此设置:
选择用户DSN, 点击添加
找到箭头所指的驱动,双击
然后看到如下界面,
下面是我的设置,Data Source Name随便填写一个名字就好了,Description随便添就好了,用户和密码填写你设置的,Database点击下拉箭头,选择一个就好,最后点击Test,不出意外应该显示连接成功,然后点击OK
4. 连接代码
首先在 .pro 文件里面加入QT += sql
,然后在头文件中加入#include <QSqlDatabase>
和#include <QMessageBox>
代码如下:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");db.setHostName("127.0.0.1");db.setPort(3306);db.setDatabaseName("mysql");db.setUserName("root");db.setPassword("root");bool ok = db.open();if (ok){QMessageBox::information(this, "infor", "success");}else {QMessageBox::information(this, "infor", "open failed");}
注意:setDatabaseName种填入的应该是你前面填入的Data Source Name
执行:
谢谢阅读