天天看點

qt遠端連接配接mysql資料庫_Qt遠端連接配接MySql資料庫

一:代碼

voidMainDialog::connectMySQL(QString sIp,intiPort,  QString sDbNm, QString sUserNm, QString sPwd)

{

db = QSqlDatabase::addDatabase("QMYSQL");// 使用mysql資料庫驅動

db.setHostName(sIp);        // IP位址

db.setPort(iPort);          // 端口号

db.setDatabaseName(sDbNm);  // 資料庫名稱

db.setUserName(sUserNm);    // 使用者名

db.setPassword(sPwd);       // 密碼

boolok = db.open();// 嘗試連接配接資料庫

if(ok)

{

qDebug() <

}

else// 打開資料庫失敗

{

QMessageBox::information(this, tr("提示"), tr("MySql資料庫連接配接失敗!"), tr("确定"));

qDebug() <

}

}

二:連接配接過程遇到的問題。

問題1:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase:available drivers: QSQLITE QODBC3 QODBC

(1)出錯原因:本連接配接是通過QMYSQL驅動,而Qt本身并沒有QMYSQL驅動(隻有QSQLITE QODBC3 QODBC),

是以就需要自己編譯QMYSQL。

(2)編譯QMYSQL驅動。

1.安裝mysql時要選上安裝include和lib。mysql安裝的時候預設的安裝路徑中有空格,我們得先把它的include和lib目錄拷貝到沒有空格的路徑下,比如D:\work\MySQL下。

2.cd C:\Qt\2010.04\qt\src\plugins\sqldrivers\mysql

3.C:\Qt\2010.04\qt\bin\qmake-o Makefile "INCLUDEPATH+=D:\MySQL\include""LIBS+=D:\MySQL\lib\opt\libmysql.lib" mysql.pro

4.将C:\Qt\2010.04\mingw\bin加為環境變量path中

5.mingw32-make(此過程會在Qt\2010.04\qt\plugins\sqldrivers下生成libqsqlmysql4.a、libqsqlmysqld4.a、qsqlmysql4.dll、qsqlmysqld4.dll檔案)

6.把libmySQL.dll拷貝到exe檔案同目錄下

問題2:

cannot open database.

Reason: Access denied for user 'qt_test'@'localhost' (usingpassword: YES)

(1)出錯原因:使用者名或密碼錯誤

三:遠端連接配接

(1)建一個sqldrivers檔案夾,将qsqlmysql4.dll放進去。

(2)到工程的exe檔案同目錄下,把sqldrivers檔案夾和libmySQL.dll放進去。

(3)将整個程式發到用戶端。

OK!