ubuntu linux下使用Qt連接MySQL數(shù)據(jù)庫(kù)的方法
更新時(shí)間:2011年08月14日 22:19:12 作者:
Linux下完整的MySQL開(kāi)發(fā)需要安裝服務(wù)器端,如果安裝客戶端也沒(méi)什么不好。直接在軟件中心搜mysql,把client和server選上。
環(huán)境說(shuō)明:
ubuntu 10.04.2
QtSDK (1.5G安裝包的那個(gè))
mysql5.1
1.安裝MySQL
Linux下完整的MySQL開(kāi)發(fā)需要安裝服務(wù)器端,如果安裝客戶端也沒(méi)什么不好。直接在軟件中心搜mysql,把client和server選上。
server在安裝時(shí)會(huì)提示為root用戶設(shè)置密碼,設(shè)一個(gè)好了。
我使用的是mysql5.1版本,用戶名密碼存儲(chǔ)在一個(gè)叫mysql的數(shù)據(jù)庫(kù)里,只有管理員級(jí)別才能看到。
如果直接在終端中輸入 mysql,可能會(huì)提示ERROR 1045 (28000),這是因?yàn)檫@時(shí)候你是以自己用戶名訪問(wèn)數(shù)據(jù)庫(kù),而目前數(shù)據(jù)庫(kù)中只有一個(gè)root用戶。沒(méi)關(guān)系,如果有必要,可以添加一個(gè)用戶進(jìn)去:
mysql -uroot -p -->以root用戶登錄
grant usage on *.* to dummy@localhost; -->授權(quán)名為dummy的用戶本地登錄,這里換成自己的用戶名就可以了
不過(guò)這時(shí)候直接mysql只有普通的權(quán)限,創(chuàng)建數(shù)據(jù)庫(kù)、操作mysql都是不可以的,如果真有將其賦予管理員權(quán)限的需要,可以自己查閱有關(guān)資料。
2.安裝Qt的MySQL驅(qū)動(dòng)。
方法一:直接sudo apt-get install libqt4-sql-mysql ,這是Qt4的mysql驅(qū)動(dòng),就不用自己費(fèi)勁編譯了,不過(guò)可能會(huì)額外下載一些東西。
將 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDK sqldrivers目錄下,我當(dāng)時(shí)是直接用普通權(quán)限安裝,目錄為:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
方法二:其實(shí)你也可以sudo apt-get download libqt4-sql-mysql,把包解壓縮,然后把里面的so文件搜出來(lái)直接拷貝到那里。
方法三:乖乖按照官方方法編譯,但是貌似可行性不大,因?yàn)樾掳姹镜腝tSDK并沒(méi)有src目錄,默認(rèn)也沒(méi)有mysql的驅(qū)動(dòng)。
3.做個(gè)demo試一下
記得在pro文件中 QT +=那里加上sql,否則qmake是不會(huì)去找sql的相關(guān)部分的
#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("study");
db.setUserName("root");
db.setPassword("tyh");
if(!db.open()){
qDebug()<<"Unable to open database";
}else{
qDebug()<<"Database connection established";
}
return a.exec();
}
這里study這個(gè)數(shù)據(jù)庫(kù)之前我已經(jīng)創(chuàng)建過(guò)了,如果連接成功,就會(huì)顯示Database connection established。 我是建立的控制臺(tái)程序哈。
ubuntu 10.04.2
QtSDK (1.5G安裝包的那個(gè))
mysql5.1
1.安裝MySQL
Linux下完整的MySQL開(kāi)發(fā)需要安裝服務(wù)器端,如果安裝客戶端也沒(méi)什么不好。直接在軟件中心搜mysql,把client和server選上。
server在安裝時(shí)會(huì)提示為root用戶設(shè)置密碼,設(shè)一個(gè)好了。
我使用的是mysql5.1版本,用戶名密碼存儲(chǔ)在一個(gè)叫mysql的數(shù)據(jù)庫(kù)里,只有管理員級(jí)別才能看到。
如果直接在終端中輸入 mysql,可能會(huì)提示ERROR 1045 (28000),這是因?yàn)檫@時(shí)候你是以自己用戶名訪問(wèn)數(shù)據(jù)庫(kù),而目前數(shù)據(jù)庫(kù)中只有一個(gè)root用戶。沒(méi)關(guān)系,如果有必要,可以添加一個(gè)用戶進(jìn)去:
mysql -uroot -p -->以root用戶登錄
grant usage on *.* to dummy@localhost; -->授權(quán)名為dummy的用戶本地登錄,這里換成自己的用戶名就可以了
不過(guò)這時(shí)候直接mysql只有普通的權(quán)限,創(chuàng)建數(shù)據(jù)庫(kù)、操作mysql都是不可以的,如果真有將其賦予管理員權(quán)限的需要,可以自己查閱有關(guān)資料。
2.安裝Qt的MySQL驅(qū)動(dòng)。
方法一:直接sudo apt-get install libqt4-sql-mysql ,這是Qt4的mysql驅(qū)動(dòng),就不用自己費(fèi)勁編譯了,不過(guò)可能會(huì)額外下載一些東西。
將 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDK sqldrivers目錄下,我當(dāng)時(shí)是直接用普通權(quán)限安裝,目錄為:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
方法二:其實(shí)你也可以sudo apt-get download libqt4-sql-mysql,把包解壓縮,然后把里面的so文件搜出來(lái)直接拷貝到那里。
方法三:乖乖按照官方方法編譯,但是貌似可行性不大,因?yàn)樾掳姹镜腝tSDK并沒(méi)有src目錄,默認(rèn)也沒(méi)有mysql的驅(qū)動(dòng)。
3.做個(gè)demo試一下
記得在pro文件中 QT +=那里加上sql,否則qmake是不會(huì)去找sql的相關(guān)部分的
復(fù)制代碼 代碼如下:
#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("study");
db.setUserName("root");
db.setPassword("tyh");
if(!db.open()){
qDebug()<<"Unable to open database";
}else{
qDebug()<<"Database connection established";
}
return a.exec();
}
這里study這個(gè)數(shù)據(jù)庫(kù)之前我已經(jīng)創(chuàng)建過(guò)了,如果連接成功,就會(huì)顯示Database connection established。 我是建立的控制臺(tái)程序哈。
相關(guān)文章
一文了解mysql索引的數(shù)據(jù)結(jié)構(gòu)為什么要用B+樹(shù)
這篇文章主要介紹了一文了解mysql索引的數(shù)據(jù)結(jié)構(gòu)為什么用B+樹(shù),在節(jié)點(diǎn)中存儲(chǔ)某段數(shù)據(jù)的首地址,并且B+樹(shù)的葉子節(jié)點(diǎn)用了一個(gè)鏈表串聯(lián)起來(lái),便于范圍查找,下文利用各種索引的數(shù)據(jù)結(jié)構(gòu)的方法與B+樹(shù)做對(duì)比,看看它的優(yōu)勢(shì)到底是什么,感興趣的小伙伴可以參考一下2022-04-04Mysql服務(wù)添加 iptables防火墻策略的方案
這篇文章主要介紹了給Mysql服務(wù)添加 iptables防火墻策略的方案,本文給大家分享兩種解決方案,需要的朋友可以參考下2021-04-04MySQL?驅(qū)動(dòng)中虛引用?GC?耗時(shí)優(yōu)化與源碼分析
這篇文章主要為大家介紹了MySQL?驅(qū)動(dòng)中虛引用?GC?耗時(shí)優(yōu)化與源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05MySQL數(shù)據(jù)庫(kù)10秒內(nèi)插入百萬(wàn)條數(shù)據(jù)的實(shí)現(xiàn)
假設(shè)現(xiàn)在我們要向mysql插入500萬(wàn)條數(shù)據(jù),如何實(shí)現(xiàn)高效快速的插入進(jìn)去?本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-10-10使用SKIP-GRANT-TABLES 解決 MYSQL ROOT密碼丟失
這篇文章主要介紹了使用SKIP-GRANT-TABLES 解決 MYSQL ROOT密碼丟失的相關(guān)資料,需要的朋友可以參考下2015-09-09MySQL連接異常:Communications link failure問(wèn)題及解決
這篇文章主要介紹了MySQL連接異常:Communications link failure問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11