linux下QT連線mysql資料庫

2021-08-25 12:56:00 字數 2355 閱讀 4460

之前用c語言連了mysql資料庫,因為專案畢竟是用qt包裝的,還需要在qt的介面裡顯示,所以這一次就用qt來連一下mysql。

首先說一下我的電腦是ubuntu10.10;之前安裝了qt的linux全部套件(包括qtcreator),也安裝了嵌入式qt的那三個編譯環境(x11,x86,arm),但是這一次我只用qtcreatot裡的qmake編譯(以為之前編譯完那三個環境後,我就把編譯資料夾全刪了)。

首先,安裝mysql客戶端(mysql-devel),和c語言連線一樣,執行命令:

sudo apt-get install libmysqlclient-dev 或

sudo apt-get install libmysqlclient15-dev

因為我之前安裝過,所以這一步就省略了。

然後,連線mysql資料庫肯定要有驅動,這個在qt的原始碼裡就有:進入資料夾:

cd   qtdir/src/plugins/sqldrivers/mysql                       這就是qt存放mysql驅動原始碼的目錄

目錄裡應該有main.cpp 和moc_qsql_mysql.cpp兩個檔案

執行命令:

qmake  -project                                 生成mysql.pro檔案,可能這一步會說你沒有許可權,那麼chmod給它許可權就可以了

qmake "includepath+=/usr/include/mysql" "libs+=-l/usr/lib/mysql -lmysqlclient_r" mysql.pro

/usr/include/mysql    mysql所有標頭檔案所在的位置,mysql.h就在此處

/usr/lib/mysql            mysql庫的位置

然後,執行命令:

make

sudo make install

此時,在qtdir/src/plugins/sqldrivers/mysql  這個目錄下,就生成了乙個檔案:libqsqlmysql.so;把它拷貝到qtdir/plugins/sqldrivers, 目錄下面;

現在開始程式設計:

隨便建工程:

加入如下**:

#include #include #include qtextstream out(stdout);

qsqldatabase db = qsqldatabase::adddatabase("qmysql");

db.sethostname("localhost");

db.setdatabasename("test");

db.setusername("root");

db.setpassword("******");

if(!db.open())

qsqlquery query;

query.exec("select * from t_homedata");

while(query.next())

{qstring id = query.value(0).tostring();

qstring type = query.value(1).tostring();

qstring data = query.value(2).tostring();

out << id << ", " << type << ", " << data 《注意,這段**,是我加入到工程中的,恩,我就放在main.cpp裡;#include 這個是必須的;#include 這個是用來進行控制台列印輸出的,我的資料庫名為test,中間有乙個表叫

t_homedata,表裡有三個varchar型字段:

其列印結果為:

寫道100010, 23, 32.45

100011, 12, 99

100012, 11, 35.10

注意,再進行工程的編譯和執行之前(恩,因為我的電腦裡實際有4個qt編譯環境,所以還需要再qtcreator的project選項裡設定該項目的編譯器,我的編譯器設定為qt-opensource,即qtcreator自帶的,因為我之前所進行的mysql驅動編譯也都是再qtcreator的安裝目錄裡進行的),一定別忘了在工程的.pro檔案裡加上下面一行:

qt  += sql

恩,qt 幫助文件裡就是這麼說的:

to include the definitions of the module's classes, use the following directive:

#include

to link against the module, add this line to yourqmake 

.pro file:

qt += sql

Linux下MySQL遠端連線

linux下的mysql遠端連線設定 linux版本 centos6.5版本 mysql版本 5.5 因為mysql在剛剛安裝完成之後,預設不支援遠端連線,所以需要授權!授權法 grant all privileges on to 使用者名稱 identified by 登入密碼 with gran...

linux下連線mysql介面

1 需要什麼標頭檔案?include mysql inte ce s include file 2 需要什麼庫函式 usr lib mysql 3 怎麼連線到乙個已經存在的mysql資料庫?可以用mysql real connect來連線資料庫,用完後記得要用mysql close斷開這個連線.my...

qt連線mysql安全麼 Qt連線Mysql的問題

標頭檔案 include include include 工程中需要加入 qt sql 資料庫中的中文顯示為亂碼的解決方法 在main函式中加入 include qtextcodec setcodecfortr qtextcodec codecforname utf 8 qtextcodec set...