轉自:http://blog.csdn.net/li491093957/article/details/52783637
讓我們開始吧
正文開始,首先糾正一個錯誤,據說QT從5.2就已經自帶MySQL驅動了,不需要你向QT4一樣去編譯,我的理解是他帶了一半的驅動,另外一半QT需要鏈接到你的mysql裏面。如果你遇到如圖所示的錯誤
,
但是又是QT5.2或者5.2以上可以參考博主的解決思路,一般都可以解決,博主用的是WIN7系統加MYSQL5.6
一般系統和MYSQL沒有太大的關聯性,所以放手跟我一起GO GO GO
另外->
通過qDebug() << qDatabases.lastError().text();可以打印出你的數據庫連接的錯誤
通過qDebug() << QSqlDatabase::drivers();可以打印出你的數據庫擁有的庫文件
------------------------------------------------------------------------------------華麗的分割線---------------------------------------------------------------------------------
首先你需要檢查你的QT和MYSQL,你的QT是32位的,那麼很遺憾如果你的MYSQL是64位的,你需要裝32位的MYSQL,不然你是鏈接不上的,很多人都死在這一步,不信你試試?
第二你需要打開你的,MYSQL的 lib目錄,把下面的.lib和.dll結尾的文件全部複製到QT的bin目錄下,下面以博主的QT5.3 VS2013作爲圖片演示:
複製到QT的bin目錄下
基本上就可以連接到MYSQL了我們來測試一波
[cpp] view plain copy
- <span style="font-size:14px;color:#33cc00;"><strong>QSqlDatabase qDatabases = QSqlDatabase::addDatabase("QMYSQL");
- //設置相關參數
- qDatabases.setDatabaseName("qt_chat_server"); // 需要與數據庫中的一致
- qDatabases.setHostName("127.0.0.1"); // 主機名(地址)
- qDatabases.setPort(3306); // 端口
- qDatabases.setUserName("root"); //設置用戶名
- qDatabases.setPassword("1a2b3c4d5e"); //設置密碼
- // 打開數據庫
- if (qDatabases.open( )) {
- qDebug() << "cg";
- }</strong></span>
///然後打印出了cg
什麼你還是不能連接到數據庫?excuse me?
不要慌要圓,那麼你可以試試QODBC去MYSQL的官網下載 http://dev.mysql.com/downloads/connector/odbc/ 下載第一個Windows (x86, 32-bit), MSI Installer ,安裝時選擇第二個(完全安裝),然後去你的控制面板裏面查看方式,小圖標,點擊管理工具,點擊數據源,用戶和系統都可以建立一個數據源。
那麼又是一波測試代碼,,,,
[cpp] view plain copy
- <span style="color:#33cc00;"><strong>QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
- db.setHostName("127.0.0.1");
- db.setDatabaseName("qt_chat_server_connnect");
- if (db.open())
- {
- qDebug(("cg"));
- }
- else{
- qDebug() << qDatabases.lastError().text();
- qDebug() << QSqlDatabase::drivers();
- qDebug() << QCoreApplication::libraryPaths();
- qDebug( ("sb"));
- }</strong></span>
///打印cg