ubuntu linux下使用Qt串連MySQL資料庫的方法

來源:互聯網
上載者:User

環境說明:
ubuntu 10.04.2
QtSDK (1.5G安裝包的那個)
mysql5.1
1.安裝MySQL
Linux下完整的MySQL開發需要安裝伺服器端,如果安裝用戶端也沒什麼不好。直接在軟體中心搜mysql,把client和server選上。
server在安裝時會提示為root使用者佈建密碼,設一個好了。
我使用的是mysql5.1版本,使用者名稱密碼儲存在一個叫mysql的資料庫裡,只有管理員層級才能看到。
如果直接在終端中輸入 mysql,可能會提示ERROR 1045 (28000),這是因為這時候你是以自己使用者名稱訪問資料庫,而目前資料庫中只有一個root使用者。沒關係,如果有必要,可以添加一個使用者進去:
mysql -uroot -p -->以root使用者登入
grant usage on *.* to dummy@localhost; -->授權名為dummy的使用者本地登入,這裡換成自己的使用者名稱就可以了
不過這時候直接mysql只有普通的許可權,建立資料庫、操作mysql都是不可以的,如果真有將其賦予管理員權限的需要,可以自己查閱有關資料。
2.安裝Qt的MySQL驅動。
方法一:直接sudo apt-get install libqt4-sql-mysql ,這是Qt4的mysql驅動,就不用自己費勁編譯了,不過可能會額外下載一些東西。
將 /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDK sqldrivers目錄下,我當時是直接用普通許可權安裝,目錄為:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
方法二:其實你也可以sudo apt-get download libqt4-sql-mysql,把包解壓縮,然後把裡面的so檔案搜出來直接拷貝到那裡。
方法三:乖乖按照官方方法編譯,但是貌似可行性不大,因為新版本的QtSDK並沒有src目錄,預設也沒有mysql的驅動。
3.做個demo試一下
記得在pro檔案中 QT +=那裡加上sql,否則qmake是不會去找sql的相關部分的 複製代碼 代碼如下:#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這個資料庫之前我已經建立過了,如果串連成功,就會顯示Database connection established。 我是建立的控制台程式哈。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.