在前面的 QxOrm 章节中,我们已经介绍了对本地数据库的操作,现在是时候介绍对远程数据库的访问了,那么就以最常用的 MySQL 为例吧!

在开始之前,首先要安装 MySQL。如果条件允许,建议将其安装在 Linux 系统上,安装过程可参考《在 Ubuntu 上安装 MySQL》。在使用数据库时,建议结合数据库管理工具(例如:Navicat)一起,这有助于简化数据库的管理。

1

访问 MySQL

与操作 SQLite 类似,QxOrm 在访问 MySQL 时,仅需要对数据库配置稍作更改即可,其他部分几乎可以不做改动。

为了不对 MySQL 自带的数据库产生影响,我们先来建立一个测试数据库 test,下面的所有操作都在该数据库中进行:

在数据库建立成功之后,现在就可以将《QxOrm 快速上手》中的数据库配置部分从 SQLite:

// 初始化参数,用于和数据库交互qx::QxSqlDatabase::getSingleton()->setDriverName("QSQLITE");qx::QxSqlDatabase::getSingleton()->setDatabaseName("./Users.db");qx::QxSqlDatabase::getSingleton()->setHostName("localhost");qx::QxSqlDatabase::getSingleton()->setUserName("root");qx::QxSqlDatabase::getSingleton()->setPassword("");

替换为 MySql 了:

// 配置 MySQLqx::QxSqlDatabase::getSingleton()->setDriverName("QMYSQL");qx::QxSqlDatabase::getSingleton()->setDatabaseName("test");qx::QxSqlDatabase::getSingleton()->setHostName("192.168.***.***");qx::QxSqlDatabase::getSingleton()->setUserName("root");qx::QxSqlDatabase::getSingleton()->setPassword("password");qx::QxSqlDatabase::getSingleton()->setPort(3306);

运行程序,然后查看上面创建的数据库,你会看到新建了一张 User 表,并且还添加了几条记录:

这就表明访问 MySql 成功了,是不是很简单呢!

2

常见问题

在访问远程 MySql 数据库时,难免会出现各种各样的问题,导致最终连接失败,下面来总结下常见的一些原因。

MySql 驱动加载失败

这是 Qt 中的一个典型问题,只要操作 MySql 数据库,就会遇到:

QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

要解决它,可以参考《QMYSQL driver not loaded 原理及解决方案》,里面写的很详细!

无法访问远程 MySql 数据库

这个原因就比较多了,以下情况都有可能:

  • MySql 服务未开启

  • 防火墙限制 3306 端口访问

  • MySQL 监听的仅是本机 IP

  • 未赋予账号远程登录权限

有关这几个问题的解决方案,可参考《在 Ubuntu 上安装 MySQL》一文。

所以呢,QxOrm 操作 MySQL 并没有想象中那么难,只要解决好驱动加载和远程连接问题就可以了。

·END·

mysql 开启远程访问_QxOrm 访问 MySQL相关推荐

  1. linux下mysql开启远程访问权限及防火墙开放3306端口(mysql开放host访问权限)

    开启mysql的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法.相对而言,改 ...

  2. 开放防火墙的端口号mysql_linux下mysql开启远程访问权限及防火墙开放3306端口

    Linux 防火墙开放特定端口 (iptables)     iptables是linux下的防火墙,同时也是服务名称. service  iptables  status        查看防火墙状 ...

  3. linux mysql开远程访问,Linux mysql开启远程访问

    默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误 是因为,mysql的默认配置为了增强安全性,禁止了非本 ...

  4. Mysql开启外网访问

    Mysql开启外网访问 进入mysql数据库 user mysql; 更新域属性,'%'表示允许外部访问 update user set host='%' where user = 'root'; 更 ...

  5. centos mysql 访问_centos下mysql开启远程访问

    登录MySQL:  mysql -u root -p; 然后输入密码, 如需修改密码,第一次:  mysqladmin -u root password NEWPASSWORD 已设置过:  mysq ...

  6. Mysql 开启远程访问权限

    简介 最近在服务器上安装了 mysql 数据库,但是用自己的电脑确远程连接不到服务器上的 mysql 数据库,经过一番查阅得出,缺省状态下,mysql 数据库没有远程访问的权限.下面介绍两种方法,开启 ...

  7. windows mysql端口_windows开启3306端口访问mysql

    开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 330 ...

  8. mysql 开启远程访问_开启mysql的远程访问权限

    1.登陆mysql数据库 mysql -u root -p 查看user表 mysql> use mysql; Database changed mysql> select host,us ...

  9. php访问mysql函数吗,PHP访问MySQL数据库函数简介

    PHP访问MySQL数据库函数简介 PHP访问MySQL数据库函数简介 1. 进行数据库连接 连接数据库服务器,就是客户端向己运行的数据库服务器发出连接请求, 成功以后就可以对数据库进行相应操作,由于 ...

最新文章

  1. ios: coreData的NSManagedObject setvalue为null
  2. Android中用 adb 命令操作数据库
  3. 【Android 组件化】路由组件 ( 路由框架概述 )
  4. Bitmap Cache
  5. c++Data Member的绑定
  6. .NET Core 项目指定SDK版本
  7. div添加html链接,DIV添加超链接小记
  8. 科一主观题刷题 0308
  9. JAVA读锁不使用效果一样_Java使用读写锁替代同步锁
  10. 爬虫python下载电影_python爬虫:抓取下载电影文件,合并ts文件为完整视频
  11. 计算机网络相关的知识,计算机网络相关知识整理
  12. YAML出现严重的反序列化漏洞,谷歌TensorFlow将采用 JSON
  13. python lambda表达式及用法_Python中lambda表达式的常见用法
  14. 计算机图形学完整笔记(八):曲线曲面 - 2
  15. 易语言查询Windows API之网络函数消息函数
  16. 自动获取关键词插件,双标题关键词插件
  17. NXP S32K146 CAN通讯 TJA1043(二)
  18. 将编译器的代码快速转存为图片
  19. 使用diskpart制作U盘启动盘
  20. Flutter 蓝牙便携打印插件

热门文章

  1. 360修复导致服务器,桌面安装360软件修复漏洞补丁导致桌面TC端无法登陆,FC端VNC登陆一键修复显示HDC不可达...
  2. 格力电器Java面试题_JAVA设计模式学习--工厂模式
  3. js 刷新div_vue.js备忘记录(五) vue-router
  4. 51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器
  5. mysql 线性表_数据结构之线性表
  6. python读csv最快方法_使用Python读写csv文件的三种方法
  7. 用好MySQL的21个好习惯!
  8. 五、华为鸿蒙HarmonyOS应用开发之Java开发模式下的同一个 Page 里实现页面跳转时无参(有参)传递、回值详解
  9. 智能指针分配动态数组
  10. iframe父页面与子页面之间的元素获取与方法调用