• 关于Qt添加QMYSQL数据库


    1、很多可能默认安装qt creator的时候不带有QMYSQL数据库,但是需要用的时候,需要自己添加

      打印下数据库支持哪些驱动:

    qDebug() << QSqlDatabase::drivers();

       默认一般是这样的,并不支持QMYSQL,红线框内的驱动库文件是已经生成好的,也是我们需要的

    ("QSQLITE", "QMARIADB", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

    2、参考看看大老的帖子https://www.cnblogs.com/dz-study/p/12382837.html

      https://blog.csdn.net/pyc_01/article/details/104753704

    3、按照上面的帖子顺利解决问题

    ("QSQLITE", "QMARIADB", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

    ********看到这里在补充一些***********************

    1、正常情况下打印是没有mysql驱动的,所以需要下载mysql对应的API接口以及库文件,编译成驱动所需的库文件;

      https://www.mysql.com/downloads/-->MySQL Community (GPL) Downloads »--->MySQL Community Server

       下载完成后,解压在D:program_filemysql57mysql-5.7.19-winx64文件夹下;

      在该目录下创建一个配置文件:my.ini

    [client]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    
    [mysqld]
    # 设置端口3306
    port = 3306
    #设置mysql安装目录
    basedir=D:\program_file\mysql57\mysql-5.7.19-winx64
    
    # 设置mysql数据存储目录,mysql8+不需要以下配置,否则报错
    datadir=D:\program_file\mysql57\mysql-5.7.19-winx64\sqldata
    
    # 允许最大连接数
    max_connections=20
    
    # 服务端使用字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    
    # 创建新表时使用默认存储引擎
    default-storage-engine=INNODB

      以管理员权限打开cmd,切换到目录下,

        1、初始化mysql

      

    mysqld --initialize --console
    // 注意,执行完成后会生成随机密码:heOsUUDc+1Rr(最好先复制到文本格式下,再拷贝过来,否则可能存在0或者O分不清)

        2、安装mysql

    mysqld install

        3、启动mysql

    net start  mysql

        4、登录mysql

    mysql  -u root -p

          

        5、输入密码:heOsUUDc+1Rr,登录进来后,修改密码:新的密码:123456

    set password for 'root'@'localhost'= password('123456');

        

        6、验证新的密码重新登录:

    2、在Qt下找到mysql的源文件的工程,D:program_fileqt51295.12.9Srcqtbasesrcpluginssqldriversmysql,打开mysql.pro,

      正常是这样的:

    TARGET = qsqlmysql
    
    HEADERS += $$PWD/qsql_mysql_p.h
    SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    
    QMAKE_USE += mysql
    
    OTHER_FILES += mysql.json
    
    PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
    include(../qsqldriverbase.pri)

    修改后是这样的:

    TARGET = qsqlmysql
    
    HEADERS += $$PWD/qsql_mysql_p.h
    SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    
    #QMAKE_USE += mysql
    
    OTHER_FILES += mysql.json
    
    PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
    include(../qsqldriverbase.pri)
    // 下载mysql驱动包中的include文件目录
    INCLUDEPATH +="D:program_filemysql57mysql-5.7.19-winx64include"
    // include目录接口对应的库文件路径
    LIBS +="D:program_filemysql57mysql-5.7.19-winx64liblibmysql.lib"
    // 编译生成目标库的路径
    DESTDIR = ../mysql/lib/

    3、修改完成后,编译该工程,正确编译后,在D:program_fileqt51295.12.9Srcqtbasesrcpluginssqldriversmysql下生成一个lib文件,存放maysql的驱动

    4、拷贝qsqlmysql.dll、qsqlmysqld.dll到D:program_fileqt51295.12.9mingw73_64pluginssqldrivers目录下;

    5、再将刚才解压文件中的libmysql.dll、libmysql.lib拷贝至D:program_fileqt51295.12.9mingw73_64in路径下;

    6、再次打印驱动就可以看到mysql驱动;

    ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

    7、关于mysql数据库的操作:

      1、登录mysql:

    mysql -u root -p  // 用户名 root登录mysql

      如果返回Can't connect to MySQL server on localhost (10061)”错误,说明mysql没有添加到Windows服务中,

      2、mysql加入Windows服务中

    mysql --install

      3、初始化数据库(注意这里的密码root@localhost后面的字符串)或者跳过这步;

    mysqld --initialize --user=root --console

      4、启动mysql

    net start mysql //启动数据库
    net stop mysql // 有时候需要停止数据库服务,停止数据库

      5、使用生成的密码登录mysql

    mysql -u root -p // 使用密码登录
    mysql -uroot -p  // 不适用密码登录,不设置密码比较方便

      6、登录后设置密码

    set password=password('123456');

      7、登录后查看现有的数据库

    show databases;  // 查看已经存在的数据库
    
    // 一般不使用默认带的数据库 自己新建一个
    create database mydata;    // 新建数据库mydata
    
    // 退出数据库
    exit

    8、上面创建好数据库基础上,就可以在qt中使用。一般创建数据库使用脚本创建好后,在qt中直接使用;

  • 相关阅读:
    Tomcatd断点调试Debug
    idea怎么部署Servlet
    ECMAScript基本语法——①与HTML的结合方式
    JavaScript简介
    程序员找工作,应该怎么应对面试官?
    你所未知的3种 Node.js 代码优化方式
    对 APM 用户的一次真实调查分析(上)
    Datadog Agent是啥?它消耗什么资源?
    Python 全栈开发 -- 开发环境篇
    成为运维界的「福尔摩斯」,你还需要3个帮手!
  • 原文地址:https://www.cnblogs.com/lbx-cnblogs/p/13521678.html
Copyright © 2020-2023  润新知