setHostName("127.0.0.1");     ....">

当前位置:  技术问答>linux和unix

QT 与 MySQL 连接的问题

    来源: 互联网  发布时间:2015-09-30

    本文导语:  connection.h: #ifndef CONNECTION_H #define CONNECTION_H #include  inline bool createOneConnection() {     QSqlDatabase *db;         db = QSqlDatabase::addDatabase("QMYSQL3"); db->setHostName("127.0.0.1");     db->setDatabaseName("qttest");     db->setUs...

connection.h:

#ifndef CONNECTION_H
#define CONNECTION_H

#include 

inline bool createOneConnection()
{
    QSqlDatabase *db;    
    db = QSqlDatabase::addDatabase("QMYSQL3");
db->setHostName("127.0.0.1");
    db->setDatabaseName("qttest");
    db->setUserName("root");
    if (!db->open()) {
        db->lastError().showMessage();
        return false;    }
  return false;
 }
    return true;
}

#endif



main.cpp:

#include 
#include 

#include "connection.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    if (createOneConnection())
        return 1;

    QSqlQuery query;
    query.exec("CREATE TABLE artist ("
               "id INTEGER PRIMARY KEY, "
               "name VARCHAR(40) NOT NULL, "
               "country VARCHAR(40))");
    query.exec("CREATE TABLE cd ("
               "id INTEGER PRIMARY KEY, "
               "artistid INTEGER NOT NULL, "
               "title VARCHAR(40) NOT NULL, "
               "year INTEGER NOT NULL)");
    query.exec("CREATE TABLE track ("
               "id INTEGER PRIMARY KEY, "
               "cdid INTEGER NOT NULL, "
               "number INTEGER NOT NULL, "
               "title VARCHAR(40) NOT NULL, "
               "duration INTEGER NOT NULL)");

#if 1
    query.exec("INSERT INTO artist "
               "VALUES (1001, 'Gluecifer', 'Norway')");
    query.exec("INSERT INTO artist "
               "VALUES (1002, 'The Sounds', 'Sweden')");
    query.exec("INSERT INTO artist "
               "VALUES (1003, 'Melvins', 'USA')");
    query.exec("INSERT INTO artist "
               "VALUES (1004, 'Strapping Young Lads', 'Canada')");
    query.exec("INSERT INTO cd "
               "VALUES (2001, 1001, 'Riding the Tiger', 1997)");
    query.exec("INSERT INTO cd "
               "VALUES (2002, 1001, 'Easy Living', 2002)");
    query.exec("INSERT INTO cd "
               "VALUES (2003, 1002, 'Living in America', 2002)");
    query.exec("INSERT INTO cd "
               "VALUES (2004, 1003, 'Bullhead', 1991)");
    query.exec("INSERT INTO cd "
               "VALUES (2005, 1003, 'Stag', 1996)");
    query.exec("INSERT INTO cd "
               "VALUES (2006, 1003, 'Hostile Ambient Takeover', "
               "2002)");
    query.exec("INSERT INTO cd "
               "VALUES (2007, 1003, '26 Songs', 2003)");
    query.exec("INSERT INTO cd "
               "VALUES (2008, 1004, 'City', 1997)");
    query.exec("INSERT INTO cd "
               "VALUES (2009, 1004, 'No Sleep Till Bedtime', "
               "1998)");
    query.exec("INSERT INTO cd "
               "VALUES (2010, 1004, 'Syl', 2003)");
    query.exec("INSERT INTO track "
               "VALUES (3001, 2004, 01, 'Boris', 514)");
    query.exec("INSERT INTO track "
               "VALUES (3002, 2004, 02, 'Anaconda', 143)");
    query.exec("INSERT INTO track "
               "VALUES (3003, 2004, 03, 'Ligature', 229)");
    query.exec("INSERT INTO track "
               "VALUES (3004, 2004, 04, 'It''s Shoved', 155)");
    query.exec("INSERT INTO track "
               "VALUES (3005, 2004, 05, 'Zodiac', 254)");
    query.exec("INSERT INTO track "
               "VALUES (3006, 2004, 06, 'If I Had An Exorcism', "
               "187)");
    query.exec("INSERT INTO track "
               "VALUES (3007, 2004, 07, 'Your Blessed', 339)");
    query.exec("INSERT INTO track "
               "VALUES (3008, 2004, 08, 'Cow', 271)");
#endif

    return 0;
}



运行时弹出对话框:Driver not loaded Driver not loaded.

实在不知道是什么原因。

为什么QT与MySQl连不上呢?

在网上看到很多人问这个问题,可是没人答得出来,

还望高手不吝赐教.

|
没做过!跟踪进去哪错了?

|
你看看有没有安装QMYSQL3  这个QT下mysql驱动
可疑在QT开发环境的"Project"-->"Database connections"-->new 然后选择看看

|
如果你是从光盘安装的,在哪张碟子我不记得了,反正里面有的,名字好像是qt-xx的!
如果从从源代码安装,QT的帮助文档里面有安装方法:
How to build the plugin on Unix/Linux 
You need the MySQL header files and as well as the shared library libmysqlclient.so. Depending on your Linux distribution you need to install a package which is usually called "mysql-devel". 
Tell qmake where to find the MySQL header files and shared libraries (here it is assumed that MySQL is installed in /usr/local) and run make: 
cd $QTDIR/plugins/src/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib" mysql.pro
make

这个有点文体,就是连接的时候要加上-lmysqlclient,否则调试程序要出错,你可以试试把第二步改成:
qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIB+=-L/usr/local/lib -lmysqlclient" mysql.pro



|
windows环境我就不太清楚了,在linux下,编译好的mysql的模块会在$QTDIR/plugins/sqldrivers下有个libqsqlmysql.so 
我想windows下也应该有个类似的模块文件吧?
如果安装好了,在QT 开发界面的Project-->database connections--->new  然后选择driver可以看到QMYSQL3的.

请问,你的编译通过了哈??

|
没有编译起那个mysql模块?
那..................我也不晓得了!
mysql自带的有一套C API,用这个如何呢?

|
libmysql.lib
这个你有吗?
然后还需要mysql的头文件,我的linux下的QT编译是成功了的!

    
 
 

您可能感兴趣的文章:

  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在线请教:linux下用MySQL C API 连接MySQL 4.1.12出现的连接问题,提示升级客户端!!!!!!
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • mysql密码过期导致连接不上mysql
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • mysql开启远程连接(mysql开启远程访问)
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • 解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
  • Linux下的C++程序怎么连接WIN2000下的SQL Server 2000?或者如何连接MySQL?
  • mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
  • windows mysql 客户端连接 VMWare中ubuntu里的MySQL
  • php连接不上mysql但mysql命令行操作正常的解决方法
  • JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]
  • php连接mysql连接被重置怎么办?解决方法
  • mysql 里面的sql语句的连接字符是什么?急用!
  • 如何用java连接mysql数据库?
  • linux c远程连接MySql的问题
  • 测试php连接mysql是否成功的代码分享
  • 一个LIUNX的MYSQL连接问题
  • 如何解决连接mysql的权限问题?
  • linux下 mysql [设置或是连接]的问题
  • c++中关于#include <mysql/mysql.h>的问题?
  • linux 下mysql 以root和普通用户进入mysql的问题
  • 我的是mandrake8.2,已经安装了mysql,请教一个菜鸟问题,怎么操作才能进入mysql,然后建库!
  • radius mysql问题 rlm_sql_mysql.so 这个文件我怎么都没有找到
  • mysql安装问题菜鸟问题
  • Apache 1.3.22/Tomcat 4.0.4/Mysql 3.23/mm.mysql.jdbc-2.0pre5的中文乱码问题
  • apache+tomcat3.2.3+mm.mysql+mysql3.22+jdk1.3.1中文问题,急!!!!分不够还可以再加..
  • java 和 mysql的问题?初级问题!
  • mysql4.0升级到mysql5(4.1),解决字符集问题
  • MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • qt连接mysql
  • 谁有linux用qt和mysql开发的信息管理程序
  • 谁能给出一个QT连接数据库(MySQL)的完整的例子,感激不尽,100分相赠。
  • ubuntu linux下使用Qt连接MySQL数据库的方法
  • 我在linux环境下用QT和Mysql,编译时无法找到头文件QSqlDriver,怎么办?
  • Mysql查询错误:ERROR:no query specified原因
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • php安装完成后如何添加mysql扩展
  • MySQL 重装MySQL后, mysql服务无法启动
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • MySQL Workbench的下载安装与使用教程
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • VS2012+MySQL+SilverLight5的MVVM开发模式介绍
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL索引基本知识
  • 在Linux内安装了Mysql,无法进入Mysql.
  • Mysql设置查询条件(where)查询字段为NULL
  • 怎样在linux终端输入mysql直接进入mysql?
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • mysql -u root mysql 怎么解释
  • java将类序列化并存储到mysql(使用hibernate)
  • javascript开源软件 iis7站长之家
  • Mysql索引类型:B-Tree索引介绍
  • MySQL集群 MySQL Cluster
  • Win7 64位下mysql 下载、安装与配置图文教程
  • MySQL存储引擎 MySQL Maria


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3