Qt连接 MySQL5.7/5.6//////8.0版本的连接暂时没搞出来

我要说的是,我最开始下载的mysql8.0,没连接上,后来改为5.6和5.7都连接上了

在没注意的情况下,选择了默认安装,部分安装在了Program Files,一部分安装在了Program Files(x86)

由于是64位的电脑,所以MySQL Server8.0在Program Files文件夹下,而它的mysql.exe也在MySQL Server8.0\bin文件夹下

如果可以再来一次,我绝对不会搞默认安装的

安装时注意root的密码,后面是需要的

因为没有配置环境变量,所以只能在bin文件夹下打开mysql.exe

在cmd窗口下,输入mysql  -u root -p 把user(root)登录到数据库

接下来就是输入密码

showdabses;//可以显示已有的databases

create database mydata;//创建mydata数据库

exit;//退出

 

以上是MySQL的安装,接下来是来连接MySQL,这真的让我头大

Qt连接 MySQL5.7/5.6//////8.0版本的连接暂时没搞出来_第1张图片

 相信你也看了一些网上的教程,哈哈哈,我也是,可是真的有问题,他们提到的lib文件,不是安装后的MySQL Community Server里面,而是在压缩文档里面,这个真是把我搞吐了

Qt连接 MySQL5.7/5.6//////8.0版本的连接暂时没搞出来_第2张图片

还需要注意mingw32需要32位的libmysql.dll,而mscv64位的需要64位的libmysql.dll

Qt连接 MySQL5.7/5.6//////8.0版本的连接暂时没搞出来_第3张图片

把里面的libmysql.dll文件取出来,放在生成的exe文件夹下,一起就可以执行了,我在MySQL5.6和5.7上都可以运行了,但是很遗憾,MySQL8.0没有找到

#include 
#include 
#include 
#include 
#include "QtSql/qsqlquery.h"
//#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 输出可用数据库
    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug() << driver;

    // 打开MySQL
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("mydata");
    db.setUserName("root");
    db.setPassword("");//注意这里的密码
    if (!db.open())
        qDebug() << "Failed to connect to root mysql admin";
    else qDebug() << "open";

    QSqlQuery query(db);

    //注意这里varchar一定要指定长度,不然会出错
    query.exec("create table student(id int primary key,name varchar(20))");

    query.exec("insert into student values(1,'xiaogang')");
    query.exec("insert into student values(2,'xiaoming')");
    query.exec("insert into student values(3,'xiaohong')");

    query.exec("select id,name from student where id >= 2");

    while(query.next())
    {
        int value0 = query.value(0).toInt();
        QString value1 = query.value(1).toString();
        qDebug() << value0 << value1 ;
    }

    return a.exec();
}

下面添加这个程序去试试,编译之后,运行,如果不加libmysql.dll会报错

Qt连接 MySQL5.7/5.6//////8.0版本的连接暂时没搞出来_第4张图片

添加了后,就不会了

Qt连接 MySQL5.7/5.6//////8.0版本的连接暂时没搞出来_第5张图片

 欢迎讨论8.0的连接

你可能感兴趣的:(qt)