关于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中直接使用;

原文地址:https://www.cnblogs.com/lbx-cnblogs/p/13521678.html