QT mysql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT mysql相关的知识,希望对你有一定的参考价值。

1.开发环境

win7+Qt5.6.1+mysql5.7.14

2.安装mysql

由于本人安装的是win7 32位的Qt5.6.1编译器为mingw 只在Qt官网看到了32位的版本,所以mysql也选择了mysql5.7.14 32位版本。

技术分享

安装:

(1)下载免安装版本http://dev.mysql.com/downloads/mysql/    即zip压缩文件

(2)设置环境变量http://jingyan.baidu.com/article/e4d08ffdd5f6670fd2f60d2f.html(参考)

          将mysql解压到D盘根目录(目录随意,设置环境变量时输入正确即可)

                 点我的电脑,右键属性,高级设置,环境变量,新建MYSQL_HOME,输入mysql所在目录,再在path中加入

选中系统变量中的“path”,在path值开头处输入:

;%MYSQL_HOME%\bin确认即可

如下几个图

技术分享技术分享技术分享技术分享技术分享

(3)安装,参考文章:http://jingyan.baidu.com/article/8cdccae946133f315513cd6a.html


在上一步上添加了环境变量,这里要进行配置工作

双击D:\mysql-5.7.14-win32下的my-default文件

修改如下技术分享

打开命令行终端cmd(注意需以右键方式,管理身份打开)


技术分享

分别安顺序执行以下几个命令:

初始化数据库:mysqld --initialize --user=mysql --console得到初始化密码(最下一行)

技术分享

将MySQL添加到系统服务

mysqld --install MySQL

net start MySQL

技术分享



启动MySQL并修改密码

       在CMD控制台里执行命令  mysql -u root -p 

回车执行后,输入刚才记录的随机密码

执行成功后,控制台显示 mysql>,则表示进入mysql

输入命令set password for [email protected] = password(‘123‘); (注意分号)

此时root用户的密码修改为123

技术分享

3.Qt程序测试

建立Qt例程,测试代码如下(记得在.pro文件中加入QT += sql)


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSql>
#include <QSqlDatabase>

#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    qDebug() << "Available drivers:";
             QStringList drivers = QSqlDatabase::drivers();
             foreach(QString driver, drivers)
                 qDebug() << "\t "<< driver;
          qDebug() << "End";
          QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
          db.setPort(3306);
          db.setHostName("localhost");//mysql在本地,赶写这个那可
          db.setDatabaseName("mysql");//mysql这个database在数据中自带了一个,之后
          db.setUserName("root");//这个user name和password要和上文中设置的一置
          db.setPassword("123");

          if(!db.open()){
             qDebug()<<db.lastError();
          }
          else{
              qDebug() << "\nConnected " << "OK";
          }
}

运行程序发现报错


技术分享

网上查找方法,只需将D:\mysql-5.7.14-win32\lib下的libmysql.dl文件放入C:\Windows下或者放入D:\Qt\Qt5.6.1\5.6\mingw49_32\bin(Qt编译器的bin文件夹)

可入运行。

网上有的说需要重新编译qt的mysql驱动文件(参考:http://blog.csdn.net/m15814478834/article/details/49902077)

4.总结

Qt和mysql的调试花了一天多的时间,问题主要出现在Qt测试程序无正常open一个database,之前用sqlite如果数据库不存在就自己建立了一个,但是在mysql中,似乎不好可以。(数据库基本没怎么用过,所以不太了解)。最后直接按照例程中打开名为"mysql"的数据库才测试成功。用navicat可视化工具建表。

技术分享

技术分享

技术分享


以上是关于QT mysql的主要内容,如果未能解决你的问题,请参考以下文章

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解

部分代码片段

linux中怎么查看mysql数据库版本

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图