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