转自: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了我们来测试一波
- <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 ,安装时选择第二个(完全安装),然后去你的控制面板里面查看方式,小图标,点击管理工具,点击数据源,用户和系统都可以建立一个数据源。
那么又是一波测试代码,,,,
- <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