当前位置: 首页 > 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)的运算速度远…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...