关于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_file\mysql57\mysql-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_file\qt5129\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql,打开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_file\mysql57\mysql-5.7.19-winx64\include" // include目录接口对应的库文件路径 LIBS +="D:\program_file\mysql57\mysql-5.7.19-winx64\lib\libmysql.lib" // 编译生成目标库的路径 DESTDIR = ../mysql/lib/
3、修改完成后,编译该工程,正确编译后,在D:\program_file\qt5129\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql下生成一个lib文件,存放maysql的驱动
4、拷贝qsqlmysql.dll、qsqlmysqld.dll到D:\program_file\qt5129\5.12.9\mingw73_64\plugins\sqldrivers目录下;
5、再将刚才解压文件中的libmysql.dll、libmysql.lib拷贝至D:\program_file\qt5129\5.12.9\mingw73_64\bin路径下;
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中直接使用;