转载自:http://mobile.51cto.com/symbian-273262.htm

详解Ubuntu10.10下Qt连接Mysql数据库是本文要介绍的内容,很详细的步骤,我们先来看内容。

第一步:安装qt开发环境

  1. xhy@xhy-desktop:~$sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer

第二步:安装mysql开发环境

  1. xhy@xhy-desktop:~$sudo apt-get install mysql-server mysql-client
  2. xhy@xhy-desktop:~$sudo apt-get install libmysqlclient15-dev
  3. xhy@xhy-desktop:~$sudo apt-get install libqt4-sql-mysql
  4. xhy@xhy-desktop:~$sudo /etc/init.d/mysql restart

第三步:给普通用户授权操作数据库

  1. xhy@xhy-desktop:~$ mysql -u root -p      (root登录数据库)
  2. mysql> create database mydb;                     (创建一个数据库)
  3. mysql> grant all privileges on *.* to username@localhost identified by 'password';
  4. mysql> quit;

给特定用户分配数据操作权限的格式是:

grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户ip地址 identified by '密码';

第四步:测试环境

  1. #include <QApplication>
  2. #include <QtSql>
  3. #include <QTableView>
  4. #include <iostream>
  5. using namespace std;
  6. int main(int argc, char *argv[])
  7. {
  8. QApplication app(argc, argv);
  9. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
  10. db.setHostName("localhost");
  11. db.setDatabaseName("mydb");
  12. db.setUserName("username");
  13. db.setPassword("password");
  14. db.open();
  15. QSqlQuery query;
  16. query.exec("create table hello(id bigint not null auto_increment,name varchar(255),age bigint,primary key (id))");
  17. /*query.exec("insert into hello(name, age) values('xiaoxi', 18)");
  18. query.exec("insert into hello(name, age) values('xiaonan', 19)");
  19. query.exec("insert into hello(name, age) values('xiaobei', 20)");
  20. query.exec("insert into hello(name, age) values('xiaodong', 21)");*/
  21. //ODBC风格
  22. query.prepare("insert into hello(name, age)" "values(?, ?)");
  23. query.addBindValue("xiaoxi");
  24. query.addBindValue(18);
  25. query.exec();
  26. query.addBindValue("xiaonan");
  27. query.addBindValue(19);
  28. query.exec();
  29. query.addBindValue("xiaobei");
  30. query.addBindValue(20);
  31. query.exec();
  32. query.addBindValue("xiaodong");
  33. query.addBindValue(21);
  34. query.exec();
  35. //Oracle风格
  36. /*query.prepare("insert into hello(name, age) values(:name, :age)");
  37. query.bindValue(":name", "xiaoxi");
  38. query.bindValue(":age", 18);
  39. query.exec();
  40. query.bindValue(":name", "xiaonan");
  41. query.bindValue(":age", 19);
  42. query.exec();
  43. query.bindValue(":name", "xiaobei");
  44. query.bindValue(":age", 20);
  45. query.exec();
  46. query.bindValue(":name", "xiaodong");
  47. query.bindValue(":age", 21);
  48. query.exec();*/
  49. QSqlQueryModel *model = new QSqlQueryModel;
  50. model->setQuery("select * from hello");
  51. model->setHeaderData(0, Qt::Horizontal, "id");
  52. model->setHeaderData(1, Qt::Horizontal, "name");
  53. model->setHeaderData(2, Qt::Horizontal, "age");
  54. QTableView *view = new QTableView;
  55. view->setWindowTitle("QSqlQueryModel");
  56. view->setModel(model);
  57. view->show();
  58. /*QSqlTableModel *model = new QSqlTableModel;
  59. model->setTable("hello");
  60. model->select();
  61. for (int i = 0; i < model->rowCount(); ++i)
  62. {
  63. QSqlRecord record = model->record(i);
  64. int id = record.value(0).toInt();
  65. QString name = record.value(1).toString();
  66. int age = record.value(2).toInt();
  67. cout << id << " " << qPrintable(name) << " " << age << endl;
  68. }*/
  69. db.close();
  70. return app.exec();
  71. }

编译:

  1. xhy@xhy-desktop:~$ qmake -project
  2. xhy@xhy-desktop:~$ qmake

一定别忘了在工程的.pro文件里加上下面一行:

  1. QT += sql
  2. xhy@xhy-desktop:~$make
  3. xhy@xhy-desktop:~$./mysql

转载于:https://blog.51cto.com/poettears/1174096

详解Ubuntu10.10下Qt连接Mysql数据库相关推荐

  1. qt mingw连接mysql_win下Qt连接MySql (mingw)

    /*************************************************************************************************** ...

  2. linux(ARM架构)下的mysql安装、QT连接mysql数据库(完整版)

    一.安装MYSQL之前要先换源 二.安装MYSQL 1.安装 2.安装完成 3.安装后无法登陆 3.1 原因 3.2 登陆后切换database 3.3 修改密码(注意这里账号和密码是双引号) 3.4 ...

  3. mysql数据库字段变形_详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    摘要:这篇MySQL栏目下的"详解如何利用amoeba(变形虫)实现mysql数据库读写分离",介绍的技术点是"MySQL数据库.数据库读写分离.amoeba.MySQL ...

  4. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)

    本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动到qt连接mysql数据库(一.编译连接前准备) [全教程]qt连接mysql--从qt编译mysql驱动到qt连接my ...

  5. qt 连接mysql数据库_QT连接MYSQL数据库教程

    QT连接MYSQL数据库教程 最近购买了阿里云Linux服务器,处于自学需要安装了MYSQL5.7. 准备用QT开发个小工具,在使用QT提供的标准类连接MYSQL库的时候一直爆出无法加载MYSQL驱动 ...

  6. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)

    一.说明 电脑系统:win10 qt版本:5.13.2和5.14.1(测试均成功) mysql版本:MySQL-5.5 本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动 ...

  7. 关于MAC下pymysql连接mysql数据库报错2003的问题解决方法

    关于MAC下pymysql连接mysql数据库报错2003的问题解决方法 问题:pymysql.err.OperationalError: (2003, "Can't connect to ...

  8. linux mysql如何远程连接mysql数据库,Linux下远程连接MySQL数据库的方法

    Linux下远程连接MySQL数据库的方法 踩坑笔记 估计搞了一个多小时才把这个远程连接搞好.一台本地电脑,一台云服务器,都是linux系统. 步骤 1.在服务器端开启远程访问 首先进入mysql数据 ...

  9. Linux下编译连接mysql数据库

    1.在Linux下编译连接mysql数据库的程序时,需要使用安装Mysql数据库时自带的mysql_config脚本.它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.需要使用下面 ...

最新文章

  1. 迁移学习之InceptionV3(159层),Xception(126层),Inception_ResNet_V2(572层)(图像识别)
  2. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
  3. 浅析在网站优化工作中是如何优化网站流量的?
  4. pandas 或者字段值_Pandas 用法总结
  5. zookeeper出现Error contacting service. It is probably not running.
  6. mfcc中的fft操作_简化音频数据:FFT,STFT和MFCC
  7. 【Python 标准库学习】安全哈希与摘要算法库 — hashlib
  8. FxCAD 实验三 实现对象的【属性】事件
  9. jquery环形3D立体旋转特效
  10. fetch 另一种ajax解决方案
  11. 01-Quartz2D
  12. phalapi做登录检测_1.4 PhalApi 2.x 接口响应与在线调试
  13. C++学习笔记——opencv2模块(图像处理)
  14. Windows 7 with SP1中英文原版MSDN下载汇总
  15. 2021-2022年数学建模资料汇总——建模软件篇
  16. uniapp好用项目和插件总结
  17. Photoshop CS2 视频教程-PS色板(转)
  18. js复制富文本/网页内容到黏贴板
  19. 国家档案局发布第13号令《机关档案管理规定》
  20. IDEA报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found

热门文章

  1. 王元编辑口语资料-中国传统之节日
  2. C#中处理XML文档的方法
  3. jdk安装失败_jenkins全局工具jdk、maven安装
  4. JAVA SE 学习day_10:集合、聊天室练习最终版
  5. Xamarin Essentials教程发送邮件Email
  6. XamarinAndroid组件教程RecylerView动画组件使用动画(2)
  7. NULL和唯一约束UNIQUE的对应关系
  8. ​Highmaps网页图表教程之绘图区显示标签显示数据标签定位
  9. php 字节输出,PHP输出字节流带上BOM
  10. 继承redis spring_实例讲解Springboot以Repository方式整合Redis