当前位置: 首页 > news >正文

浅谈mysql【8.0】链接字符串

string connectionString = "server=your_server;user=your_user;password=your_password;database=your_database;sslmode=none;allowPublicKeyRetrieval=true;Allow User Variables=True;";

在 C# 中配置 MySQL 数据库连接字符串时,可以通过添加多个参数来控制连接的行为。你提到的几个参数分别是 sslmode=noneallowPublicKeyRetrieval=trueAllow User Variables=True。下面分别讲解这些参数的作用以及它们是否可以同时配置。

1. sslmode=none

  • 作用: 这个参数用于控制 MySQL 连接是否使用 SSL 加密。sslmode=none 表示不使用 SSL 加密连接,这意味着数据将以明文形式在网络中传输,可能会增加数据被截获的风险。
  • 使用场景: 当你的数据库服务器不支持 SSL 连接,或者你更关心连接的性能而不关心安全性时,可以使用这个选项。
  • 如果出现此报错,需要添加该选项

2. allowPublicKeyRetrieval=true

  • 作用: 这个参数允许客户端从 MySQL 服务器获取公钥。当使用基于 SHA-256 的密码认证方式(如 caching_sha2_password)时,如果客户端没有本地存储的公钥,可以请求服务器发送公钥。
  • 使用场景: 当你使用 MySQL 8.0 及以上版本,并且用户的认证插件是 caching_sha2_password 时,配置这个选项可以避免连接错误。

3. Allow User Variables=True

  • 作用: 这个参数允许在 SQL 查询中使用用户变量。用户变量是在 MySQL 中定义的临时变量,可以在查询中使用。
  • 使用场景: 当你需要在查询中使用用户变量时,例如在存储过程或复杂的 SQL 查询中,配置这个选项可以使 MySQL 支持用户变量的使用。

是否可以同时配置

是的,这些参数可以同时配置在同一个连接字符串中。例如:

总结

  • sslmode=none: 禁用 SSL 加密,适用于不关心安全的场景。
  • allowPublicKeyRetrieval=true: 允许客户端从服务器获取公钥,适用于 MySQL 8.0 及以上版本的认证插件。
  • Allow User Variables=True: 允许在 SQL 查询中使用用户变量,适用于需要使用用户变量的场景。

如果只使用基本的连接字符串 connectionString = "server=your_server;user=your_user;password=your_password;database=your_database;",而不配置 sslmode=noneallowPublicKeyRetrieval=trueAllow User Variables=True 这些参数,会有几个显著的区别。以下是每个区别的详细解释:

1. 数据传输的安全性(sslmode

  • 只使用基本连接字符串:

    • 默认情况下,MySQL Connector/NET 可能使用明文连接,具体取决于 MySQL 服务器的配置和版本。如果没有启用 SSL,数据在客户端和服务器之间将以明文形式传输,存在被网络拦截的风险。
  • 配置 sslmode=none:

    • 明确指定不使用 SSL,可以避免额外的加密处理,但同样会导致数据在传输过程中不安全。
  • 不配置的影响:

    • 如果后端 MySQL 服务器基于 SSL 的设置要求使用 SSL,而你的应用程序未配置 SSL,连接会失败,产生错误。

2. 公钥获取(allowPublicKeyRetrieval

  • 只使用基本连接字符串:

    • 如果使用 MySQL 8.0 或以上版本且用户的密码采用了 caching_sha2_password 认证插件,您在未配置 allowPublicKeyRetrieval 时,连接可能会因为无法获取公钥而失败。这种情况下,会出现一个错误,说明无法获得公钥,导致身份验证失败。
  • 配置 allowPublicKeyRetrieval=true:

    • 允许客户端动态获取公钥,避免由于公钥缺失而导致的连接失败。
  • 不配置的影响:

    • 如果服务器要求公钥并未在本地提供,连接会失败。

3. 用户变量支持(Allow User Variables

  • 只使用基本连接字符串:

    • 默认情况下,MySQL Connector/NET 支持用户变量的使用。如果你的 SQL 查询或者存储过程不需要用户变量,这个选项可能不会直接影响你的应用程序。如果需要使用用户变量而未启用该选项,则可能会导致某些 SQL 查询失败或者无法应用。
  • 配置 Allow User Variables=True:

    • 明确允许在 SQL 查询中使用用户变量,保证你可以在执行更加复杂的交互时充分利用用户变量的功能。

总结

  • 安全性: 如果不配置 sslmode,将可能在不安全的环境中传输数据,但可能不影响连接的可用性;但如果要求使用 SSL 且未配置,连接会失败。
  • 公钥处理: 不配置 allowPublicKeyRetrieval 在特定情况下(尤其是现代 MySQL 版本和加密认证使用情况下)会导致连接失败。
  • 用户变量: 不配置 Allow User Variables 不会直接生成错误,但若需要使用用户变量,它的缺失可能会导致某些复杂查询执行失败。

因此,综合考虑安全、连接稳定性和功能实现,通常建议根据需求准备完整的连接字符串,以确保应用程序的健壮性和安全性。

相关文章:

浅谈mysql【8.0】链接字符串

string connectionString "serveryour_server;useryour_user;passwordyour_password;databaseyour_database;sslmodenone;allowPublicKeyRetrievaltrue;Allow User VariablesTrue;";在 C# 中配置 MySQL 数据库连接字符串时,可以通过添加多个参数来控制连…...

BERT,RoBERTa,Ernie的理解

BERT: 全称:Bidirectional Encoder Representations from Transformers。可以理解为 “基于 Transformer 的双向编码器表示”。含义:是一种用于语言表征的预训练模型。它改变了以往传统单向语言模型预训练的方式,能够联合左侧和右…...

获取 Wind 数据并进行简单的择时分析

使用Python获取Wind数据并进行简单的择时分析时,需要按照以下步骤操作。 (1)登录Wind官网,在“金融解决方案”的下拉列表里选择“金融终端”选项,如下图3.2所示。 (2)根据自己计算机的实际情况…...

小檗碱的酵母代谢工程生物合成-文献精读78

De novo production of protoberberine and benzophenanthridine alkaloids through metabolic engineering of yeast 将酵母代谢工程应用于原小檗碱和苯并啡啶类生物碱的从头合成 苄基异喹啉类生物碱的微生物合成-文献精读77 香叶醇酵母生产机器学习优化酵母-文献精读66 黄…...

文件指针和写入操作

文件指针位置 w 模式: 打开文件时,文件指针位于文件的开头。如果文件已存在,文件内容会被清空。写入的数据会从文件开头开始覆盖原有内容。 a 模式: 打开文件时,文件指针位于文件的末尾。如果文件已存在,文…...

跨越科技与文化的桥梁——ROSCon China 2024 即将盛大开幕

在全球机器人技术飞速发展的浪潮中,ROS(Robot Operating System)作为一款开源的机器人操作系统,已成为无数开发者、研究人员和企业的首选工具。为了进一步推动ROS的应用与发展,全球知名的机器人操作系统会议——ROSCon…...

springboot+shiro 权限管理

一、为什么要了解权限框架 权限管理框架属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则用户可以访问而且只能访问自己被授权的资源。 目前常见的权限框架有Shiro和Spring Security,本篇文章记录springboot整合sh…...

PureMVC在Unity中的使用(含下载链接)

前言 Pure MVC是在基于模型、视图和控制器MVC模式建立的一个轻量级的应用框架,这种开源框架是免费的,它最初是执行的ActionScript 3语言使用的Adobe Flex、Flash和AIR,已经移植到几乎所有主要的发展平台,支持两个版本框架&#xf…...

25国考照片处理器使用流程图解❗

1、打开“国家公务员局”网站,进入2025公务员专题,找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”,再找到“照片处理工具”双击。 6、双击后会进入这样的界面,点击&…...

一位纯理科生,跨界自学中医,自行组方治好胃病、颈椎病与高血脂症,并在最权威的中国中医药出版社出版壹本专业中医图书!

这是一位铁杆中医迷, 也是《神农本草经——精注易读本》的作者。 希望更多的人能够受到启发,感受中医之神奇,敢于跨界,爱好中医,学习中医! 一个病人以自己的切身感受与诊断,并使之汤药治愈疾病&…...

运动控制 双轮差速模型轨迹规划

文章目录 一、轨迹规划1.1轨迹平滑与轮迹1.2 目标距离1.3 速度限制1.4 候选速度的计算与调整1.5 路径生成 二、双轮轨迹2.1 计算梯度2.2 计算偏移轨迹2.3 返回结果 一、轨迹规划 1.1轨迹平滑与轮迹 初始时,我们有一条由若干坐标点构成的机器人运行路径。通过对这些…...

使用 Sortable.js 库 实现 Vue3 elementPlus 的 el-table 拖拽排序

文章目录 实现效果Sortable.js介绍下载依赖添加类名导入sortablejs初始化拖拽实例拖拽完成后的处理总结 在开发过程中,我们经常需要处理表格数据,并为用户提供便捷的排序方式。特别是在需要管理长列表、分类数据或动态内容时,拖拽排序功能显得…...

MySQL索引相关介绍及优化(未完...)

如何看一条SQL语句的执行好坏? MySQL提供了自带的工具Explain可以查看sql语句的执行好坏。 explain主要的列: 1:type:这一列表示MySQL决定如何查找表中的行,查找数据行记录的大概范围。 有 system const eq_ref ref…...

【AI+教育】一些记录@2024.11.04

一、尝新 今天尝试了使用九章随时问,起因是看到快刀青衣的AI产品好用榜,里面这么介绍九章随时问:「它不是像其他产品那样,直接给你出答案。而是跟你语音对话,你会感觉更像是有一位老师坐在你的旁边,一步步…...

三维测量与建模笔记 - 2.2 射影几何

教程中H矩阵写的有问题,上图中H矩阵应该是(n1) x (m1) 共点不变性,下图中黄色方块标记的点,在射影变换前后,虽然直线的形状有所变化,但仍然相交于同一个点。 共线不变性,下图黄色标记的两个点,在…...

论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)

中文标题:简化目标检测的无源域适应:有效的自我训练策略和性能洞察 原文标题:Simplifying Source-Free Domain Adaptation for Object Detection: Effective Self-Training Strategies and Performance Insights 1、Abstract 本文重点关注计算…...

ros与mqtt相互转换

vda5050 VDA5050协议介绍 和 详细翻译-CSDN博客 ros与mqtt相互转换 如何转换的,通过某个中转包,获取ros的消息然后以需要的格式转换为mqtt 需要的参数 ros相关 parameters[ (ros_subscriber_type, vda5050_msgs/NodeState), (ros_subscriber_queue…...

Golang | Leetcode Golang题解之第522题最长特殊序列II

题目: 题解: func isSubseq(s, t string) bool {ptS : 0for ptT : range t {if s[ptS] t[ptT] {if ptS; ptS len(s) {return true}}}return false }func findLUSlength(strs []string) int {ans : -1 next:for i, s : range strs {for j, t : range s…...

安卓开发之数据库的创建与删除

目录 前言:基础夯实:数据库的创建数据库的删除注意事项 效果展示:遇到问题:如何在虚拟机里面找到这个文件首先,找到虚拟机文件的位置其次,找到数据库文件的位置 核心代码: 前言: 安…...

数据结构:LRUCache

什么是LRUCache 首先我们来看看什么是cache 缓存(Cache)通常用于两个速度不同的介质之间,以提高数据访问的速度和效率。这里有几个典型的应用场景: 处理器和内存之间: 处理器(CPU)的运算速度远…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...