1: windows 下登陸mysql 命令行,(1)進入cmd (2) cd mysql 安裝路徑/mysqlserver5.6/bin (3) 使用命令mysql -u root -p 然后根據提示輸入密碼 進入命令行 select user(); //顯示當前用戶 2: 在同一臺電腦上利用Qt 訪問數據庫 (1)顯示當前電腦上安裝的數據庫驅動 QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() "/t" driver; (2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/對 QMYSQL進行操作,本函數 有第二個參數 連接名 db.setHostName("localhost");//或127.0.0.1 本主機 db.setPort(3306); db.setDatabaseName("example"); //對數據庫example進行操作 db.setUserName("wangxuetao"); //wangxuetao是一個對example數據庫有操作權限的賬戶 db.setPassword("3791948"); 于是mysql中增加一個賬戶可使用 Grant all previliges on *.* to ‘wangxuetao’@’localhost’ identified by ‘3791948’ with grant option; Flush privileges; //更新 (3)db.open() 函數可由于檢測數據庫是否連接成功 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. }
我們擁有十多年網頁設計和網站建設經驗,從網站策劃到網站制作,我們的網頁設計師為您提供的解決方案。為企業提供網站建設、網站制作、微信開發、微信小程序開發、手機網站制作設計、H5頁面制作、等業務。無論您有什么樣的網站設計或者設計方案要求,我們都將富于創造性的提供專業設計服務并滿足您的需求。
注意編譯器一定要和MYSQL的平臺版本一致,32位的用32位的編譯器編譯,64位的用64位的編譯器編譯。
準備工作:MYSQL的目錄:D:\SQL_Server\mariadb
Qt5.1.1的目錄:C:\Qt
1. 先將D:\SQL_Server\mariadb中的include\和lib\文件夾復制到根目錄(C:),因為后面make時路徑不能有空格。
2. 打開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
如果出現找不到mysql.h文件就用qtcreator打開mysql.pro文件,配置項目,然后編譯,就會出現錯誤提示,把#include 改成#include ,編譯就行了,或回到命令行再次執行mingw32-make即可.
3. 編譯成功后。
進入到C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\plugins\sqldrivers目錄下,選中qsqlmysql.dll和 qsqlmysqld.dll兩個文件,
復制到C:\Qt\Qt5.1.1\5.1.1\mingw48_32\plugins\sqldrivers目錄下。
在這里小編使用的是SQLyogEnt進行遠程連接配置了SSH的數據庫。通過桌面的SQLyogEnt運行數據庫客戶端。
在界面中點擊【新建】按鈕,在Mysql下填寫Mysql數據庫的ip地址、用戶名、密碼、端口(默認在3306)就好,數據庫名稱。這里跟普通的連接數據庫的方法一致。
這個時候讀者可以點擊一下【測試連接】,這個時候點擊測試連接去連接數據庫是不會成功的,因為數據庫配置了SSH訪問。如下圖:
配置完成Mysql信息后,在旁邊選擇【SSH】
Qt項目里用到了mysql,運行后報錯:
查閱資料知道需要配置mysql驅動,本以為幾分鐘解決的事情,沒想到開啟了惡魔經歷,整整兩天時間,mmp!
Stop! 廢話別說啦,入正題:
首先,Qt mysql的安裝和環境配置就略了,一搜一大把。
不過注意兩點:
先進入到/Users/ing/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers目錄下,執行:
這里確保qmake用的qt里的就行
其實你可以配置下qt相關的環境變量,在bash_profile里添加:
然后,source ~/.bash_profile ,還有別忘了 source ~/.zshrc
執行成功的話會輸出:
根據提示 依次執行:
make sub-mysql
make
make install
進入/Users/ing/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers下執行,查看鏈接庫:
輸出:
此時,運行qt程序 依舊報錯。
根據查閱的資料,問題出在
網友們所說的“詭異”的路徑那一行(你的輸出可能和我的不一樣的,但問題應該一樣) ,也就是有 libmysqlclient.21.dylib 這行。
另外查了下 @repath 的含義 意思是說 不能明確的指向。。。所以 這里就需要將libmysqlclient.21.dylib 指向扳到正確的道路。
方法就是利用 install_name_tool -change
執行
這里一定要注意順序,剛開始我就是順序搞錯了,死活就是不行,最后跑到官方論壇里用蹩腳的英語發帖求教也無果,最后還是一遍的重試,一遍的檢查才發現的。一天就這么浪費了。
此刻在運行qt程序 ,就不會再報上面的錯誤了。
撒花,禮花搞起~~~
首先:進入到自己相應的qt/src/plugins/sqldrivers/mysql 目錄下 (我的目錄為:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),這個下面有兩個文件mysql.pro,一個mian.cpp! 用文本編輯器打開該目錄下的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 路徑)
打開Qt 4.8.0 Command Prompt, 編譯這個文件
#qmake -o Makefile mysql.pro
提示3條警告信息,但沒影響
#mingw32-make (這個網上有好幾個編譯命令,我的是用nmake);
然后你會發現你的 qt 下這個 qt/plugins/sqldrivers路徑(我的路徑為S:\QT\4.8.0\plugins\sqldrivers下)下多了四個文件
分別為 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四個)這樣基本上就編譯成功,可以使用 mysql 了!~
最后安全起見再將 mysql下 bin 文件中libmysql.dll文件拷貝到 system32 下面 然后測試:
#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我是在網上下載的
方法/步驟
1
下載mysql
C鏈接庫
選擇C的鏈接庫
2
將C的連接庫解壓到到C:/mysql
目錄下
3
我的QT
安裝在C盤目錄下,版本號是4.8.6
所以打開目錄
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
4
將C:/mysql/lib/libmysql.dll
和C:/mysql/lib/libmysql.lib
復制到此處。
5
編輯目錄下的mysql.pro文件
添加
INCLUDEPATH+="C:/mysql/include"
LIBS+="C:/mysql/lib/opt/libmysql.lib"
運行qt的控制臺窗口,方便使用qmake
切換到目錄下
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
執行qmake
運行VS2010的控制臺工具
切換到
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目錄下
執行nmake
和nmake
release
是nmake不是make
這樣在C:\QT\4.8.6\src\plugins\sqldrivers\mysql
目錄下的debug
目錄和release
目錄下分別會產生
qsqlmysqld4.dll
qsqlmysqld4.lib
qsqlmysql4.dll
qsqlmysql4.lib
將上面提到的四個文件復制到
C:\QT\4.8.6\plugins\sqldrivers
最后把
C:\mysql\lib\opt\libmysql.dll
C:\mysql\lib\opt\libmysql.lib
復制到
C:\Windows\system32\
目錄下。
最后測試mysql
可不可以在qt中正常使用
新建一個qt
控制臺項目
輸入以下代碼
#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();
}
運行測試一下,看看有沒有圖片中紅圈圈中的兩項內容