mysql 开启远程访问_QxOrm 访问 MySQL
在前面的 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相关推荐
- linux下mysql开启远程访问权限及防火墙开放3306端口(mysql开放host访问权限)
开启mysql的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法.相对而言,改 ...
- 开放防火墙的端口号mysql_linux下mysql开启远程访问权限及防火墙开放3306端口
Linux 防火墙开放特定端口 (iptables) iptables是linux下的防火墙,同时也是服务名称. service iptables status 查看防火墙状 ...
- linux mysql开远程访问,Linux mysql开启远程访问
默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误 是因为,mysql的默认配置为了增强安全性,禁止了非本 ...
- Mysql开启外网访问
Mysql开启外网访问 进入mysql数据库 user mysql; 更新域属性,'%'表示允许外部访问 update user set host='%' where user = 'root'; 更 ...
- centos mysql 访问_centos下mysql开启远程访问
登录MySQL: mysql -u root -p; 然后输入密码, 如需修改密码,第一次: mysqladmin -u root password NEWPASSWORD 已设置过: mysq ...
- Mysql 开启远程访问权限
简介 最近在服务器上安装了 mysql 数据库,但是用自己的电脑确远程连接不到服务器上的 mysql 数据库,经过一番查阅得出,缺省状态下,mysql 数据库没有远程访问的权限.下面介绍两种方法,开启 ...
- windows mysql端口_windows开启3306端口访问mysql
开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 330 ...
- mysql 开启远程访问_开启mysql的远程访问权限
1.登陆mysql数据库 mysql -u root -p 查看user表 mysql> use mysql; Database changed mysql> select host,us ...
- php访问mysql函数吗,PHP访问MySQL数据库函数简介
PHP访问MySQL数据库函数简介 PHP访问MySQL数据库函数简介 1. 进行数据库连接 连接数据库服务器,就是客户端向己运行的数据库服务器发出连接请求, 成功以后就可以对数据库进行相应操作,由于 ...
最新文章
- ios: coreData的NSManagedObject setvalue为null
- Android中用 adb 命令操作数据库
- 【Android 组件化】路由组件 ( 路由框架概述 )
- Bitmap Cache
- c++Data Member的绑定
- .NET Core 项目指定SDK版本
- div添加html链接,DIV添加超链接小记
- 科一主观题刷题 0308
- JAVA读锁不使用效果一样_Java使用读写锁替代同步锁
- 爬虫python下载电影_python爬虫:抓取下载电影文件,合并ts文件为完整视频
- 计算机网络相关的知识,计算机网络相关知识整理
- YAML出现严重的反序列化漏洞,谷歌TensorFlow将采用 JSON
- python lambda表达式及用法_Python中lambda表达式的常见用法
- 计算机图形学完整笔记(八):曲线曲面 - 2
- 易语言查询Windows API之网络函数消息函数
- 自动获取关键词插件,双标题关键词插件
- NXP S32K146 CAN通讯 TJA1043(二)
- 将编译器的代码快速转存为图片
- 使用diskpart制作U盘启动盘
- Flutter 蓝牙便携打印插件
热门文章
- 360修复导致服务器,桌面安装360软件修复漏洞补丁导致桌面TC端无法登陆,FC端VNC登陆一键修复显示HDC不可达...
- 格力电器Java面试题_JAVA设计模式学习--工厂模式
- js 刷新div_vue.js备忘记录(五) vue-router
- 51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器
- mysql 线性表_数据结构之线性表
- python读csv最快方法_使用Python读写csv文件的三种方法
- 用好MySQL的21个好习惯!
- 五、华为鸿蒙HarmonyOS应用开发之Java开发模式下的同一个 Page 里实现页面跳转时无参(有参)传递、回值详解
- 智能指针分配动态数组
- iframe父页面与子页面之间的元素获取与方法调用