华为云征文|Flexus云服务X实例安装ODBC驱动,在ODBC中建立MySQL数据库连接,通过QT连接云数据库

embedded/2024/9/23 20:15:20/

在这里插入图片描述

引出


4核12G-100G-3M规格的Flexus X实例使用测评第2弹:Flexus云服务X实例安装ODBC驱动,在ODBC中建立MySQL数据库连接,通过QT连接云数据库

什么是Flexus云服务器X实例

官方解释:

Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。相较于Flexus应用服务器L实例,Flexus云服务器X实例的优势包含:提供丰富的公共镜像、可灵活自定义vCPU内存配比、智能感知业务动态升降配,负载范围更高等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

连接本地MySQL

1.首先下载MySQL的ODBC驱动

MySQL :: Download Connector/ODBC

首先在MySQL的官网上下载ODBC,我这里选择第一个,64位的安装包;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下载完成后,点击运行,进行ODBC的安装

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

2.启动运行,创建用户数据源

通过控制台命令启动ODBC数据源管理程序,添加ODBC ANSI 驱动;注意这里的datasourcename需要用到!!!

cd \Windows\SysWOW64
odbcad32.exe

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意这里的Data Source Name 后面在qt中需要用到

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击test,测试连接是否成功

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意上面的Data Source Name 在后面的qt中建立Mysql连接时需要用到;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

补充:ANSI 版和 Unicode 版

ODBC(开放数据库连接)驱动程序有两种版本:ANSI 版和 Unicode 版。它们之间的主要区别在于它们处理字符串数据的方式。

  1. ANSI 版 ODBC
  • 字符编码:ANSI 版 ODBC 使用本地操作系统的默认字符编码。例如,在 Windows 上,它通常使用 Windows-1252 或其他基于系统区域设置的编码。
  • 函数后缀:ANSI 版 ODBC 函数通常以 A 结尾。例如,SQLConnect 的 ANSI 版本是 SQLConnectA
  • 字符类型:ANSI 版 ODBC 函数使用 char 类型来处理字符串。
  • 兼容性:适用于那些只需要处理单字节字符集(SBCS)或双字节字符集(DBCS)的应用程序。
  1. Unicode 版 ODBC
  • 字符编码:Unicode 版 ODBC 使用宽字符编码(例如 UTF-16)。这使得它能够处理多种语言和字符集。
  • 函数后缀:Unicode 版 ODBC 函数通常以 W 结尾。例如,SQLConnect 的 Unicode 版本是 SQLConnectW
  • 字符类型:Unicode 版 ODBC 函数使用 wchar_t 类型来处理字符串。
  • 兼容性:适用于需要处理多字节字符集(MBCS)和各种语言的应用程序。

比较与选择

选择使用 ANSI 版还是 Unicode 版 ODBC 取决于你的应用程序的需求:

  • 字符集需求:如果你的应用程序只需要处理 ASCII 或单字节字符集,ANSI 版可能就足够了。如果需要处理多语言或多字符集,Unicode 版是更好的选择。
  • 兼容性:某些老旧的系统和数据库可能仅支持 ANSI 版 ODBC。如果你的应用程序需要与这些系统兼容,使用 ANSI 版可能会更好。
  • 国际化:如果你的应用程序需要国际化支持(如处理不同语言的字符),建议使用 Unicode 版。

3.qt代码连接

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){// 使用ODBC驱动QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");db.setHostName("127.0.0.1"); // 云数据库的主机地址db.setPort(3306); // 端口db.setDatabaseName("mydatasource"); // 数据库名称db.setUserName("root"); // 用户名db.setPassword("123"); // 密码bool ok = db.open();qDebug() << ok;if (!ok) {qDebug() << "Database error occurred:" << db.lastError().text();}qDebug() << QSqlDatabase::drivers();});

如何连接华为云服务器中的MySQL

1.在Centos中安装Linux版本的ODBC驱动

通过以下命令安装Linux版本的ODBC驱动

sudo yum install mysql-connector-odbc

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

报错解决方案一:改check为 0 ,但是没有生效,估计是没有把这个文件重新载入??

vim /etc/yum.repos.d/epel.repo

在这里插入图片描述

解决方案2:执行命令后面加入参数–nogpgcheck,忽略检查

sudo yum install mysql-connector-odbc --nogpgcheck

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果遇到报错可以忽略检查,就可以安装成功

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.在ODBC连接管理器中建立和华为云的链接

和本地MySQL的链接类似,这里需要先通过ODBC建立和华为云数据库的连接;然后QT访问ODBC,进而对云数据库进行相关操作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.qt代码通过ODBC连接华为云

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

connect(ui->pushButton,&QPushButton::clicked,this,[=](){qDebug() << "\n======进行数据库的链接====";QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); // 使用 QMYSQL 驱动db.setHostName(""); // 云数据库的主机地址db.setPort(3306); // 端口db.setDatabaseName("huawei"); // 数据库名称db.setUserName("root"); // 用户名db.setPassword(""); // 密码if (!db.open()) {qDebug() << "Database error occurred:" << db.lastError().text();return;}qDebug() << "连接成功";});

报错解决

报错:QSqlDatabase: ODBC driver not loaded,这里是写错了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

报错解决:Access denied for user ‘root@localhost’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里我们需要修改权限,允许其他ip通过root用户访问MySQL

 update user set Host='%' where User='root';

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

flush privileges;
flush hosts;

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


总结

4核12G-100G-3M规格的Flexus X实例使用测评第2弹:Flexus云服务X实例安装ODBC驱动,在ODBC中建立MySQL数据库连接,通过QT连接云数据库


http://www.ppmy.cn/embedded/108020.html

相关文章

java基础知识-JVM知识详解

文章目录 一、JVM内存结构二、常见垃圾回收算法1. 标记-清除算法(Mark-Sweep Algorithm)2. 标记-整理算法(Mark-Compact Algorithm)3. 复制算法(Copying Algorithm)4. 分代收集算法(Generational Collection)5. 增量收集算法(Incremental Collection)6. 并行收集算法…

【Linux操作系统】线程控制

目录 一、线程创建二、线程等待三、线程退出四、线程的优缺点五、多线程的创建六、C11的多线程七、线程分离 一、线程创建 使用接口pthread_create创建新线程&#xff0c;头文件是pthread.h #include <iostream> #include <unistd.h> #include <pthread.h>…

7.统一网关-Gateway

文章目录 1.统一网关介绍2.网关开发3.predicate4.Route Predicate Factories(路由断言工厂)4.1Path 路由断言工厂4.2.Method 路由断言工厂4.3 Header 路由断言工厂4.4 Query 路由断言工厂4.5 Host 路由断言工厂4.6 After 路由断言工厂4.7 Before 路由断言工厂4.8 Between 路由断…

NISP 一级 —— 考证笔记合集

该笔记为导航目录&#xff0c;在接下来一段事件内&#xff0c;我会每天发布我关于考取该证书的相关笔记。 当更新完成后&#xff0c;此条注释会被删除。 第一章 信息安全概述 1.1 信息与信息安全1.2 信息安全威胁1.3 信息安全发展阶段与形式1.4 信息安全保障1.5 信息系统安全保…

VScode 的下载安装及常见插件 + Git的下载和安装

目录 一、VScode 的下载安装及常见插件 1、VSCode下载 2、VSCode安装 3、VSCode常见扩展插件及介绍 二、Git的下载和安装 1、Github 和 Gitee的区别 2、Git下载&#xff08;以Win为例&#xff09; 3、Git安装 一、VScode 的下载安装及常见插件 1、VSCode下载 &#x…

Spring Boot如何解决跨域问题?

1.什么是跨域&#xff1f; 跨域请求&#xff0c;就是说浏览器在执行脚本文件的ajax请求时&#xff0c;脚本文件所在的服务地址和请求的服务地址不一样。说白了就是ip、网络协议、端口都一样的时候&#xff0c;就是同一个域&#xff0c;否则就是跨域。这是由于Netscape提出一个…

(十五)SpringCloudAlibaba-Sentinel持久化到Nacos

前言 在前面我们已经将Sentinel配置的规则持久化到系统的文件中。本章节我们将Sentinel持久化到Nacos中; 传送门(Sentinel数据持久化到文件)https://blog.csdn.net/weixin_45876411/article/details/140742963 默认情况下 Sentinel 只能接收到 Nacos 推送的消息&#xff0c;但…

关于武汉高芯coin417G2红外机芯的二次开发

文章目录 前言一、外观和机芯参数二、SDK的使用1、打开相机2、回调函数中获取全局温度和图像3、关闭相机 前言 最近工作中接触了一款基于武汉高芯科技有限公司开发的红外模组,即coin417g2(测温型)9.1mm镜头.使用此模组,开发了一套红外热成像检测桌面应用程序.下面简单记录下该…