2017-08-10 8 views
0

QT CRUDアプリケーションの開発を終えました。 SQLiteを使用して、アプリケーションが実行されているディスクにローカルに情報を格納しています。この方法で私のアプリケーションは正常に動作します。Qt:QSqlDatabase:QMYSQLドライバがロードされていません

しかし、アプリケーションには中央データベースサーバーがありません。そのため、MySql-serverとMySql-workbenchをインストールすることから始めました。 DBをワークベンチにインポートし、サーバーが稼動していることを確認しました。

は今のQtの上に、私は次のようにポートを使用して「localhost」を上の私のサーバーにconenctし、「3306」の次の行を書いた:

db = QSqlDatabase::addDatabase("QMYSQL"); 
db.setHostName("localhost"); 
db.setPort(3306); 
db.setDatabaseName(databaseName); 
db.setUserName(userName); 
db.setPassword(userPass); 

qDebug() << appDataPath; 

if (!db.open()){ 
    return db.lastError().text(); 
} 

しかし、私はQT「アプリケーションで次のエラーを取得しますOutout 「:

QSqlDatabase:利用可能なドライバ:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

QMYSQLドライバが QSqlDatabaseを読み込みません

私はlibmysql.dllが置かれていることを確認しようとした "C:\プログラムファイル\のMySQL \ MySQLサーバ5.7のlib \" ..

を私が「Cも、それをコピーした:ユーザーがAbubakr \ドキュメントは、GitHubのの\ DEBUGを\ \ \ \ build-Muwassa-Desktop_Qt_5_4_2_MinGW_32bit2-debug "

しかし、全く動作していません。

助けてください!

+0

mysqlをサポートするQtをビルドしましたか?デフォルトでは有効になっていません。 – drescherjm

+0

'C:¥Program Files¥MySQL¥MySQL Server 5.7¥lib'はシステムパスにありますか? – drescherjm

+1

***可能であれば、QtをMysqlサーバーに接続する方法に関するチュートリアルは、たくさんの助けになります***これはStackOverflowのトピックです。 – drescherjm

答えて

0

まず、自分でQMYSQLドライバをビルドする必要があります。

Qtをダウンロードするときには、ソースとともに提供されています。

私のケースでは、それは:C:\Qt\5.9\Src\qtbase\src\plugins\sqldrivers\mysql ここに* .pro(メイクファイルジェネレータの一種)があります。あなたはQtCreatorでそれを開く必要があります、それをコンパイルし、dllを取得します。このdllはMySQLドライバであり、アプリケーションと同じdirentになければなりません。

コンパイルに問題がある場合(mysql.hが見つからないなど)、mysqlライブラリもインストールする必要があります。

Linuxでも同じ問題が発生する可能性があります。

関連する問題