qt连接mysql的问题

小雪 2014-03-03 03:23:02
我的qt和mysql都装好了,mysql也能正常使用,可是为什么不能用qt连接mysql服务呢,我的测试关键代码如下所示:
qDebug()<<"Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach (QString driver, drivers)
{
qDebug()<<driver<<endl;
}

最后执行结果却只有
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE

网上看了下是要安装mysql驱动,可是驱动我安装了呀,在
[root@miaomin sqldrivers]# ls
libqsqlite.so libqsqlmysql.so

这个so文件已经生成了呀,怎么还是不能识别呢,求大侠指点。
...全文
748 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
不衫不世 2016-03-26
  • 打赏
  • 举报
回复
引用 15 楼 u011192149 的回复:
已解决了,不需要64位的。。
层主怎么解决的
Xesian 2014-05-27
  • 打赏
  • 举报
回复
已解决了,不需要64位的。。
Xesian 2014-05-27
  • 打赏
  • 举报
回复
请问mysql和qt5.2必须是32位的吗?
liyingju001 2014-05-23
  • 打赏
  • 举报
回复
引用 12 楼 Mad7Fish 的回复:
我解决了。使用5系列以上版本mysql并且一定是要32位。
我也解决了
Mad7Fish 2014-05-21
  • 打赏
  • 举报
回复
我解决了。使用5系列以上版本mysql并且一定是要32位。
liyingju001 2014-05-19
  • 打赏
  • 举报
回复
引用 10 楼 Mad7Fish 的回复:
各位好,我这两天也遇到这个问题了,不过我的环境是windows7 64位系统 QT5.2.1 creator3.0.1 Mysql是5.5.28全安装 ; QT 安装在了c盘,mySQL安装在了C盘program下 mysQL数据文件设置在D盘文件夹下 我现在的问题也是加载不到驱动,报错提示是:QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7; 我尝试了很多方法: 1.在tool下的creator bin 中创建项目 2.将mySQL的libmysql.DLL libmysqlclient.lib libmysql.lib 拷入各种文件夹下几乎带bin的都拷了; 3.在环境变量path里加满了所有各种bin、lib、甚至mysql安装目录里的libmysql.dll的文件都直接加入path了; 4.经过我无数次折腾后发现,使用QSQLITE驱动能加载成功,但当我将QT C:\Qt\Qt5.2.1\5.2.1\mingw48_32 下的plugin中的 SQLdriver全部剪切走后,运行QSQLITE会报错加载不成功,而剪切掉其它各文件夹下的各种plugin\sqldriver,都不影响项目的驱动加载。因此我觉得只有mingw48_32下的plugin\sqldriver才是关键。 现在实在无从下手了,想请各位帮忙出出主意。死在环境配置上实在是心不甘。 还有几点我怀疑:1. qt 自带的mysql驱动是否是需要mySQL版本匹配的? 2. qt release包里还需要加上驱动吗?如果只是本地环境运行。 3. 我的QT 测试代码,相关includ 已经添加 int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setUserName("root"); db.setHostName("127.0.0.1"); db.setPassword("iwantBMW6"); db.setPort(3306); db.setDatabaseName("test"); if(!db.open()) { qDebug()<<"this,warning,failure"; } else { qDebug() << "It's work!!!!!"; } return a.exec(); }
我遇到的问题和你一模一样
Mad7Fish 2014-05-18
  • 打赏
  • 举报
回复
各位好,我这两天也遇到这个问题了,不过我的环境是windows7 64位系统 QT5.2.1 creator3.0.1 Mysql是5.5.28全安装 ; QT 安装在了c盘,mySQL安装在了C盘program下 mysQL数据文件设置在D盘文件夹下 我现在的问题也是加载不到驱动,报错提示是:QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7; 我尝试了很多方法: 1.在tool下的creator bin 中创建项目 2.将mySQL的libmysql.DLL libmysqlclient.lib libmysql.lib 拷入各种文件夹下几乎带bin的都拷了; 3.在环境变量path里加满了所有各种bin、lib、甚至mysql安装目录里的libmysql.dll的文件都直接加入path了; 4.经过我无数次折腾后发现,使用QSQLITE驱动能加载成功,但当我将QT C:\Qt\Qt5.2.1\5.2.1\mingw48_32 下的plugin中的 SQLdriver全部剪切走后,运行QSQLITE会报错加载不成功,而剪切掉其它各文件夹下的各种plugin\sqldriver,都不影响项目的驱动加载。因此我觉得只有mingw48_32下的plugin\sqldriver才是关键。 现在实在无从下手了,想请各位帮忙出出主意。死在环境配置上实在是心不甘。 还有几点我怀疑:1. qt 自带的mysql驱动是否是需要mySQL版本匹配的? 2. qt release包里还需要加上驱动吗?如果只是本地环境运行。 3. 我的QT 测试代码,相关includ 已经添加 int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setUserName("root"); db.setHostName("127.0.0.1"); db.setPassword("iwantBMW6"); db.setPort(3306); db.setDatabaseName("test"); if(!db.open()) { qDebug()<<"this,warning,failure"; } else { qDebug() << "It's work!!!!!"; } return a.exec(); }
u010871742 2014-05-17
  • 打赏
  • 举报
回复
引用 7 楼 u013407373 的回复:
对,新建项目的时候要放在E:\360Downloads\Software\Qt5.2\Tools\QtCreator\bin目录下,而且需要qmake一下,右键点击qmake,如果你用的是五版本一下的话,需要编译驱动,但是我用的是5.2版本的,所以驱动它都给弄好了,E:\360Downloads\Software\Qt5.2\5.2.0\msvc2010\plugins\sqldrivers 这是我的目录,你看你的目录下是否有mysql 的驱动。
你这说明驱动已经有了。 你试着把mysql安装目录中的libmysql.dll文件拷贝到 QT的安装目录下的这个文件夹试试 D:\Qt\Qt5.2.1\5.2.1\msvc2012_64\bin
feilinhe 2014-05-17
  • 打赏
  • 举报
回复
LS各位的解决办法已经贴边了,就是没看到LZ是linux系统,不过都一样,你确保/usr/lib或其他库目录下有mysql的动态库才行英爱是libmysqlclient.so之类的
  • 打赏
  • 举报
回复
对,新建项目的时候要放在E:\360Downloads\Software\Qt5.2\Tools\QtCreator\bin目录下,而且需要qmake一下,右键点击qmake,如果你用的是五版本一下的话,需要编译驱动,但是我用的是5.2版本的,所以驱动它都给弄好了,E:\360Downloads\Software\Qt5.2\5.2.0\msvc2010\plugins\sqldrivers 这是我的目录,你看你的目录下是否有mysql 的驱动。
xujianxiang 2014-03-05
  • 打赏
  • 举报
回复
不知道你为什么要用mysql,我以前用过这个数据库,这个数据库里面都是零散的文件,如果不是服务器方面,数据量不大的话,建议不要用,要不你会后悔。qt +sqlite就好了,一般够用就好
小雪 2014-03-04
  • 打赏
  • 举报
回复
你用的是哪个版本 qt5.2.1的话需要把mysql的那个dll放到工具库下面的bin里面就可以了 QT4的话需要编译 我用的是qt4.6.2 实在linux下面的,所以不是所说的dll就可以了。
ying_593254979 2014-03-04
  • 打赏
  • 举报
回复
mysql的驱动肯定还包含mysql的动态库。你的那个只是关于Qt的动态库。 最好在软件中心里面安装。自己编译也可以。
请叫我砖家 2014-03-04
  • 打赏
  • 举报
回复
新建项目放对目录 C:\Qt\Qt5.2.0\Tools\QtCreator\bin 这个是我的目录,对应你自己的找找
樱天寻 2014-03-03
  • 打赏
  • 举报
回复
你用的是哪个版本 qt5.2.1的话需要把mysql的那个dll放到工具库下面的bin里面就可以了 QT4的话需要编译
rophie 2014-03-03
  • 打赏
  • 举报
回复
要编译Qt mysql驱动,网上搜一下

16,816

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧