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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM