1: windows 下登陸mysql 命令行,(1)進(jìn)入cmd (2) cd mysql 安裝路徑/mysqlserver5.6/bin (3) 使用命令mysql -u root -p 然后根據(jù)提示輸入密碼 進(jìn)入命令行 select user(); //顯示當(dāng)前用戶(hù) 2: 在同一臺(tái)電腦上利用Qt 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù) (1)顯示當(dāng)前電腦上安裝的數(shù)據(jù)庫(kù)驅(qū)動(dòng) QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() "/t" driver; (2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/對(duì) QMYSQL進(jìn)行操作,本函數(shù) 有第二個(gè)參數(shù) 連接名 db.setHostName("localhost");//或127.0.0.1 本主機(jī) db.setPort(3306); db.setDatabaseName("example"); //對(duì)數(shù)據(jù)庫(kù)example進(jìn)行操作 db.setUserName("wangxuetao"); //wangxuetao是一個(gè)對(duì)example數(shù)據(jù)庫(kù)有操作權(quán)限的賬戶(hù) db.setPassword("3791948"); 于是mysql中增加一個(gè)賬戶(hù)可使用 Grant all previliges on *.* to ‘wangxuetao’@’localhost’ identified by ‘3791948’ with grant option; Flush privileges; //更新 (3)db.open() 函數(shù)可由于檢測(cè)數(shù)據(jù)庫(kù)是否連接成功 coutDBConnection(); 2. m_sqlquery = new QSqlQuery("",m_sqldb);//statement 1:connect db with sql query 3. if(result == R_OK) 4. { 5. result = m_sqlquery-exec("INSERT INTO children(fname,age) VALUES('A nn2',13)"); 6. if(!result) 7. qDebug()" [OK] ""EXEC successed"; 8. m_sqlquery-exec("SELECT * FROM children c LIMIT 0,1000"); 9. while(m_sqlquery-next()) 10. { 11. qDebug()value(0).toString()value(1). toString(); 12. } 13. }
我們擁有十多年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站制作、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、手機(jī)網(wǎng)站制作設(shè)計(jì)、H5頁(yè)面制作、等業(yè)務(wù)。無(wú)論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專(zhuān)業(yè)設(shè)計(jì)服務(wù)并滿(mǎn)足您的需求。
注意編譯器一定要和MYSQL的平臺(tái)版本一致,32位的用32位的編譯器編譯,64位的用64位的編譯器編譯。
準(zhǔn)備工作:MYSQL的目錄:D:\SQL_Server\mariadb
Qt5.1.1的目錄:C:\Qt
1. 先將D:\SQL_Server\mariadb中的include\和lib\文件夾復(fù)制到根目錄(C:),因?yàn)楹竺鎚ake時(shí)路徑不能有空格。
2. 打開(kāi)QT5.1.1 for Desktop(MinGW 4.8)
cd C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=D:\SQL_Server\mariadb\include" "LIBS+=D:\SQL_Server\mariadb\lib\libmysql.lib" mysql.pro
mingw32-make
如果出現(xiàn)找不到mysql.h文件就用qtcreator打開(kāi)mysql.pro文件,配置項(xiàng)目,然后編譯,就會(huì)出現(xiàn)錯(cuò)誤提示,把#include 改成#include ,編譯就行了,或回到命令行再次執(zhí)行mingw32-make即可.
3. 編譯成功后。
進(jìn)入到C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\plugins\sqldrivers目錄下,選中qsqlmysql.dll和 qsqlmysqld.dll兩個(gè)文件,
復(fù)制到C:\Qt\Qt5.1.1\5.1.1\mingw48_32\plugins\sqldrivers目錄下。
在這里小編使用的是SQLyogEnt進(jìn)行遠(yuǎn)程連接配置了SSH的數(shù)據(jù)庫(kù)。通過(guò)桌面的SQLyogEnt運(yùn)行數(shù)據(jù)庫(kù)客戶(hù)端。
在界面中點(diǎn)擊【新建】按鈕,在Mysql下填寫(xiě)Mysql數(shù)據(jù)庫(kù)的ip地址、用戶(hù)名、密碼、端口(默認(rèn)在3306)就好,數(shù)據(jù)庫(kù)名稱(chēng)。這里跟普通的連接數(shù)據(jù)庫(kù)的方法一致。
這個(gè)時(shí)候讀者可以點(diǎn)擊一下【測(cè)試連接】,這個(gè)時(shí)候點(diǎn)擊測(cè)試連接去連接數(shù)據(jù)庫(kù)是不會(huì)成功的,因?yàn)閿?shù)據(jù)庫(kù)配置了SSH訪(fǎng)問(wèn)。如下圖:
配置完成Mysql信息后,在旁邊選擇【SSH】
Qt項(xiàng)目里用到了mysql,運(yùn)行后報(bào)錯(cuò):
查閱資料知道需要配置mysql驅(qū)動(dòng),本以為幾分鐘解決的事情,沒(méi)想到開(kāi)啟了惡魔經(jīng)歷,整整兩天時(shí)間,mmp!
Stop! 廢話(huà)別說(shuō)啦,入正題:
首先,Qt mysql的安裝和環(huán)境配置就略了,一搜一大把。
不過(guò)注意兩點(diǎn):
先進(jìn)入到/Users/ing/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers目錄下,執(zhí)行:
這里確保qmake用的qt里的就行
其實(shí)你可以配置下qt相關(guān)的環(huán)境變量,在bash_profile里添加:
然后,source ~/.bash_profile ,還有別忘了 source ~/.zshrc
執(zhí)行成功的話(huà)會(huì)輸出:
根據(jù)提示 依次執(zhí)行:
make sub-mysql
make
make install
進(jìn)入/Users/ing/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers下執(zhí)行,查看鏈接庫(kù):
輸出:
此時(shí),運(yùn)行qt程序 依舊報(bào)錯(cuò)。
根據(jù)查閱的資料,問(wèn)題出在
網(wǎng)友們所說(shuō)的“詭異”的路徑那一行(你的輸出可能和我的不一樣的,但問(wèn)題應(yīng)該一樣) ,也就是有 libmysqlclient.21.dylib 這行。
另外查了下 @repath 的含義 意思是說(shuō) 不能明確的指向。。。所以 這里就需要將libmysqlclient.21.dylib 指向扳到正確的道路。
方法就是利用 install_name_tool -change
執(zhí)行
這里一定要注意順序,剛開(kāi)始我就是順序搞錯(cuò)了,死活就是不行,最后跑到官方論壇里用蹩腳的英語(yǔ)發(fā)帖求教也無(wú)果,最后還是一遍的重試,一遍的檢查才發(fā)現(xiàn)的。一天就這么浪費(fèi)了。
此刻在運(yùn)行qt程序 ,就不會(huì)再報(bào)上面的錯(cuò)誤了。
撒花,禮花搞起~~~
首先:進(jìn)入到自己相應(yīng)的qt/src/plugins/sqldrivers/mysql 目錄下 (我的目錄為:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),這個(gè)下面有兩個(gè)文件mysql.pro,一個(gè)mian.cpp! 用文本編輯器打開(kāi)該目錄下的mysql.pro文件 在mysql.pro中加入:
INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.5\include" LIBS+="C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib"
保存并退出(即你的mysql的include 路徑和 lib 下 opt 的 libmysql.lib 路徑)
打開(kāi)Qt 4.8.0 Command Prompt, 編譯這個(gè)文件
#qmake -o Makefile mysql.pro
提示3條警告信息,但沒(méi)影響
#mingw32-make (這個(gè)網(wǎng)上有好幾個(gè)編譯命令,我的是用nmake);
然后你會(huì)發(fā)現(xiàn)你的 qt 下這個(gè) qt/plugins/sqldrivers路徑(我的路徑為S:\QT\4.8.0\plugins\sqldrivers下)下多了四個(gè)文件
分別為 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四個(gè))這樣基本上就編譯成功,可以使用 mysql 了!~
最后安全起見(jiàn)再將 mysql下 bin 文件中l(wèi)ibmysql.dll文件拷貝到 system32 下面 然后測(cè)試:
#includeQtGui #includeQtSql #includecstdlib
#includeQtGui/QApplication #includeQtSql/QtSql boolcreateConnection() {
qDebug()"Availabledrivers:";
QStringListdrivers=QSqlDatabase::drivers(); foreach(QStringdriver,drivers) qDebug()"\t"driver;
QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL"); qDebug()"MYSQLdrivervalid?"db.isValid(); }
intmain(intargc,char*argv[]) {
至于mysql.pro我是在網(wǎng)上下載的
方法/步驟
1
下載mysql
C鏈接庫(kù)
選擇C的鏈接庫(kù)
2
將C的連接庫(kù)解壓到到C:/mysql
目錄下
3
我的QT
安裝在C盤(pán)目錄下,版本號(hào)是4.8.6
所以打開(kāi)目錄
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
4
將C:/mysql/lib/libmysql.dll
和C:/mysql/lib/libmysql.lib
復(fù)制到此處。
5
編輯目錄下的mysql.pro文件
添加
INCLUDEPATH+="C:/mysql/include"
LIBS+="C:/mysql/lib/opt/libmysql.lib"
運(yùn)行qt的控制臺(tái)窗口,方便使用qmake
切換到目錄下
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
執(zhí)行qmake
運(yùn)行VS2010的控制臺(tái)工具
切換到
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目錄下
執(zhí)行nmake
和nmake
release
是nmake不是make
這樣在C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目錄下的debug
目錄和release
目錄下分別會(huì)產(chǎn)生
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlmysql4.dll
qsqlmysql4.lib
將上面提到的四個(gè)文件復(fù)制到
C:\QT\4.8.6\plugins\sqldrivers
最后把
C:\mysql\lib\opt\libmysql.dll
C:\mysql\lib\opt\libmysql.lib
復(fù)制到
C:\Windows\system32\
目錄下。
最后測(cè)試mysql
可不可以在qt中正常使用
新建一個(gè)qt
控制臺(tái)項(xiàng)目
輸入以下代碼
#include
QCoreApplication
#include
QDebug
#include
qstring.h
#include
qstringlist.h
#include
qsql.h
#include
qsqldatabase.hint
main(int
argc,
char
*argv[])
{
QCoreApplication
a(argc,
argv);
qDebug()
"Available
drivers:";
QStringList
drivers
=
QSqlDatabase::drivers();qDebug()
drivers;return
a.exec();
}
運(yùn)行測(cè)試一下,看看有沒(méi)有圖片中紅圈圈中的兩項(xiàng)內(nèi)容
本文標(biāo)題:qt怎么配置mysql的簡(jiǎn)單介紹
路徑分享:http://chinadenli.net/article4/hpehie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、服務(wù)器托管、搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)