MySqlConnector连接选项


https://mysqlconnector.net/connection-options/

连接选项

MySqlConnector支持大多数Oracle的Connector / NET连接选项

还有一些只能由MySqlConnector支持一些独特的选项,用于替换MySql.Data修正错误,增加了新的功能,并提高了数据库的访问性能。立即安装

基本选项

这些是需要定义以连接到MySQL数据库的基本选项。

名称默认描述
主机,服务器,数据源,数据源,地址,地址,网络地址 本地主机 要连接的MySQL服务器的主机名或网络地址。可以在逗号分隔的列表中指定多个主机。
在类Unix系统上,这可以是MySQL套接字文件的完全限定路径,这将导致使用Unix套接字而不是TCP / IP套接字。只能指定一个套接字名称。
港口 3306 MySQL服务器正在侦听连接的TCP端口。
用户ID,用户ID,用户名,Uid,用户名,用户   MySQL用户标识。
密码,密码   MySQL用户的密码。
数据库,初始目录   (可选)要使用的初始数据库的区分大小写的名称。如果MySQL用户帐户仅具有服务器上特定数据库的访问权限,则可能需要这样做。
协议,ConnectionProtocol,连接协议 插座 如何连接到MySQL服务器。此选项具有以下值:
  • 套接字(默认):使用TCP / IP套接字。
  • Unix:使用Unix套接字。
  • 管道:使用Windows命名管道。
管道,PipeName,管道名称 MYSQL 用于连接服务器的Windows命名管道的名称。您还必须设置ConnectionProtocol=pipe使用命名管道。

SSL / TLS选项

这些是为了配置连接以使用SSL / TLS而需要使用的选项。

名称默认描述
SSL模式,SslMode 首选 此选项具有以下值:
  • 首选 - (这是默认值)。如果服务器支持SSL,请使用SSL。
  •  - 不使用SSL。
  • 必需 - 始终使用SSL。如果服务器不支持SSL,则拒绝连接。不验证CA或主机名。
  • VerifyCA - 始终使用SSL。验证CA但容许主机名不匹配。
  • VerifyFull - 始终使用SSL。验证CA和主机名。
证书文件,证书文件   指定PKCS#12(.pfx)格式的证书文件的路径,该格式包含用于相互身份验证的捆绑证书和私钥。要从PEM编码的证书和密钥创建PKCS#12捆绑包,请使用openssl pkcs12 -in cert.pem -inkey key.pem -export -out bundle.pfx如果SslCertSslKey使用此选项,则不应指定此选项
证书密码,CertificatePassword   指定使用该CertificateFile选项指定的证书的密码如果证书文件未受密码保护,则不需要。
SslCert,Ssl-Cert   指定PEM格式的客户端SSL证书文件的路径。SslKey也必须指定,CertificateFile不应该。netstandard1.3netstandard2.0平台不支持此选项
SslKey,Ssl-Key   指定PEM格式的客户端SSL私钥的路径。SslCert也必须指定,CertificateFile不应该。
CA证书文件,CACertificateFile,SslCa,Ssl-Ca   此选项指定PEM编码(.pem)格式的CA证书文件的路径。这应该与SslMode=VerifyCA或者SslMode=VerifyFull用于验证操作系统的证书存储不信任的CA证书。
证书商店位置,CertificateStoreLocation 没有 指定是否应使用计算机上证书存储中的证书加密连接。默认值None表示未使用证书存储区; 值的值CurrentUserLocalMachine使用指定的商店。
证书指纹,CertificateThumbprint   指定应从上述设置中指定的证书库中使用哪个证书。必须使用此选项指示应将商店中的哪个证书用于身份验证。

连接池选项

默认情况下启用连接池。这些选项用于配置它。

名称默认描述
真正 启用连接池。启用MySqlConnection.Open池时,如果有可用池,则从池中检索打开的连接(如果没有,则从中打开新连接),并且CloseDispose返回池的打开连接。
连接生命周期,ConnectionLifeTime 0 控制与服务器的连接可以打开的最长时间。如果ConnectionLifeTime连接创建后的连接超过秒,则会销毁返回到池的连接。默认值零(0)表示池连接永远不会导致ConnectionLifeTime超时。
连接重置,ConnectionReset true 如果true,从池中检索连接状态时重置连接状态。默认值true确保连接处于相同状态,无论是新创建还是从池中检索。的值false可避免获取连接时再有一次额外的服务器往返行程,但连接状态不会被重置,这意味着会话变量及任何先前使用其他连接会话状态的变化结转。
连接空闲Ping时间,连接空闲Ping时间(实验) 0 当连接从池中取出,并ConnectionResetfalse,如果连接已经在池中闲置长于服务器将被ping通ConnectionIdlePingTime秒。如果ping服务器失败,连接池将自动打开一个新连接。这可以确保MySqlConnection在调用Open之后处于有效的打开状态OpenAsync,代价是额外的服务器往返。对于高性能方案,您可能希望设置ConnectionIdlePingTime 为非零值,以使连接池假定最近返回的连接仍处于打开状态。如果连接断开,它会抛出从第一次调用ExecuteNonQueryExecuteReader等; 您的代码应该处理该失败并重试连接。如果ConnectionReset 是,则此选项无效true,因为这将导致连接重置数据包被发送到服务器,使ping多余。
连接空闲超时,ConnectionIdleTimeout 180 连接在池中保持空闲的时间(以秒为单位)。任何MinimumPoolSize空闲时间超过连接的连接ConnectionIdleTimeout都可能被后台任务关闭。后台任务每隔一分钟或一半运行ConnectionIdleTimeout,以较频繁的为准。值为零(0)表示池连接永远不会产生ConnectionIdleTimeout,如果池增长到其最大大小,它将永远不会变小。
最大池大小,最大池大小,MaximumPoolsize,maxpoolsize 100 池中允许的最大连接数。
最小池大小,最小池大小,MinimumPoolSize,minpoolsize 0 如果达到ConnectionIdleTimeout,则在池中保留的最小连接数。

与多个服务器的连接池

Server选项支持多个逗号分隔的主机名。当它与连接池一起使用时,该LoadBalance选项控制如何跨后端服务器分配负载。

  • RoundRobin(默认值),:将打开RandomMaximumPoolSize连接数,但它们可能在后端不均匀分布。
  • LeastConnectionsMaximumPoolSize将打开连接数,它们将均匀分布在后端。将以最近最少使用的顺序从池中选择活动连接,这不能确保跨后端的均匀负载。您应该设置MaximumPoolSize服务器数量乘以每个后端服务器所需的最大打开连接数。
  • Failover:所有连接最初将发送到列表中的第一个服务器。您应该设置MaximumPoolSize 每台服务器所需的最大打开连接数。

其他选择

这些是MySqlConnector支持的其他选项。它们被设置为合理的默认值,通常不需要进行调整。

名称默认描述
AllowPublicKeyRetrieval,允许公钥检索 如果用户帐户使用sha256_password身份验证,则必须在传输过程中保护密码; TLS是首选的机制,但如果它不可用,则将使用RSA公钥加密。要指定服务器的RSA公钥,请使用ServerRSAPublicKeyFile连接字符串设置,或设置AllowPublicKeyRetrieval=True为允许客户端自动从服务器请求公钥。请注意,AllowPublicKeyRetrieval=True 可能允许恶意代理执行MITM攻击以获取明文密码,因此False默认情况下必须明确启用。
AllowUserVariables,允许用户变量 允许@在SQL语句中使用用户定义的变量(带前缀)。默认值(false)仅允许使用@-prefixed name来引用命令参数。
AllowZeroDateTime,允许零日期时间 如果设置为 真正所有`DATE`,`DATETIME`和`TIMESTAMP`列都作为`MySqlDateTime`对象而不是`DateTime`返回。这允许从数据库中检索特殊的“零”日期值`0000-00-00`。如果false(默认)日期列返回为“DateTime”值,则抛出不可表示日期的异常。
ApplicationName,应用程序名称 空值 设置 PROGRAM_NAME连接属性传递给MySQL服务器。该值可以由诊断工具显示,例如,作为MySQL Workbench中“Client Connections”中的“Program”列
字符集,字符集,字符集 utf8mb4 MySqlConnector始终用于utf8mb4从MySQL服务器发送和接收字符串。可以指定此选项(为了向后兼容),但会忽略它。
压缩,使用压缩,使用压缩 如果为true(并且服务器支持压缩),则压缩客户端和服务器之间发送的数据包。除非应用程序和数据库服务器之间存在高延迟或低带宽的网络链接,否则此选项在实践中不太可能有用。您应该使用和不使用此选项来衡量性能,以确定它是否对您的环境有益。
连接超时,连接超时,ConnectionTimeout 15 在终止尝试并生成错误之前等待连接到服务器的时间长度(以秒为单位)。
转换零日期时间,ConvertZeroDateTime 如果为true,则MySqlDataReader.GetValue()和MySqlDataReader.GetDateTime()将为具有不允许值的日期或日期时间列返回DateTime.MinValue。
DateTimeKind 不明 DateTimeKind时使用MySqlDataReader返回DateTime如果设置为UtcLocalMySqlException则如果DateTime命令参数的a 或者分别为Kind则抛出a LocalUtc
GuidFormat 默认

确定应将哪个列类型(如果有)读取为a System.Guid选项包括:

Char36
所有CHAR(36)列都Guid使用带有连字符的小写十六进制读/写,匹配UUID()
的char32
所有CHAR(32)列都Guid使用不带连字符的小写十六进制读/写
Binary16
所有BINARY(16)列都Guid使用big-endian字节顺序进行读/写,匹配UUID_TO_BIN(x)
TimeSwapBinary16
所有BINARY(16)列都是Guid使用big-endian字节顺序读取/写入,时间部分交换,匹配UUID_TO_BIN(x,1)
LittleEndianBinary16
所有BINARY(16)列的读/写为Guid使用little-endian字节顺序,即所用的字节顺序Guid.ToByteArray()Guid(byte[])构造。
没有
没有列类型会自动读取为Guid
默认
同样Char36如此OldGuids=False同样LittleEndianBinary16如此OldGuids=True
默认命令超时,命令超时,DefaultCommandTimeout 三十 每个命令在超时和抛出异常之前可以执行的时间长度(以秒为单位),或者为零以禁用超时。有关 如何确定此更多说明,请参阅Microsoft文档中的注释。
IgnoreCommandTransaction,忽略命令事务 如果true,则MySqlCommand.Transaction在执行命令时忽略这与Connector / NET行为相匹配,可以使移植代码更容易。有关更多信息,请参阅事务使用
交互式,交互式会话,InteractiveSession 如果true,会话wait_timeout变量是从全局初始化的interactive_timeout value instead of the global wait_timeout value.
保持活力,保持活力 0 TCP Keepalive空闲时间。值为0表示使用了OS Default keepalive设置。在Windows上,大于0的值是在发送第一个keepalive数据包之前的空闲连接时间(以秒为单位)。由于.NET Core的限制,基于Unix的操作系统将始终使用操作系统默认保持活动设置。
负载平衡,负载平衡 ROUNDROBIN

Host包含多个以逗号分隔的主机名时使用的负载平衡策略选项包括:

ROUNDROBIN
为此连接池打开的每个新连接都使用下一个主机名(按顺序循环)。需要Pooling=True这是默认值Pooling=True
故障转移
每个新连接都尝试连接到第一个主机; 仅当连接到第一个主机失败时才使用后续主机。这是默认值Pooling=False
随机
服务器以随机顺序尝试。
LeastConnections
按此连接池中当前打开的连接数的升序尝试服务器。需要Pooling=True
老Guids,OldGuids 过时的; 请改用该GuidFormat选项。
坚持安全信息,PersistSecurityInfo 如果设置为false或no(强烈建议),则在连接处于打开状态或处于打开状态时,安全性敏感信息(如密码)不会作为连接的一部分返回。重置连接字符串会重置所有连接字符串值,包括密码。认可的价值观是真实的,错误的,是的,是的。
ServerRSAPublicKeyFile,服务器RSA公钥文件   用于sha256_password身份验证 见下的评论AllowPublicKeyRetrieval
ServerSPN,服务器SPN   对于MariaDB auth_gssapi_client身份验证。指定服务器的服务主体名称(以验证是否使用正确的服务器进行身份验证)。
将Tiny As视为布尔值,TreatTinyAsBoolean 真正 设置为时trueTINYINT(1)值将作为布尔值返回。将此设置为false导致TINYINT(1)以sbyte / byte返回。
使用受影响的行,UseAffectedRows false(默认)时,连接报告找到行而不是已更改(受影响)的行。设置为true仅报告实际更改的行数UPDATEINSERT … ON DUPLICATE KEY UPDATE语句。
使用XA Transactions,UseXaTransactions 真正 何时true(默认),使用TransactionScopeMySqlConnection.EnlistTransaction 将使用XA交易这允许真正的分布式事务,但可能与服务器复制不兼容; 还有其他限制设置false为时,使用常规MySQL事务,就像Connector / NET一样。

不支持的选项

这些选项由Connector / NET使用,但MySqlConnector不支持。通常,从Connector / NET迁移到MySqlConnector时,应从连接字符串中删除它们。


名称默认描述
AllowBatch,允许批处理 真正 MySqlConnector始终允许批处理语句。
CheckParameters,检查参数 真正 MySqlConnector始终有效地检查存储过程参数; 没有必要禁用它。
CommandInterceptors,命令拦截器   MySqlConnector不支持此可扩展性机制,该机制与异步操作不兼容。
ExceptionInterceptors,Exception Interceptors   MySqlConnector不支持此可扩展性机制。
FunctionsReturnString,函数返回String 不支持。BLOB总是返回为byte[]
IncludeSecurityAsserts,Include Security Asserts 不支持。对于部分信任环境。
IntegratedSecurity,Integrated Security 不支持Windows身份验证。
记录 请改用MySqlConnector日志(更灵活)。
OldSyntax,旧语法,UseOldSyntax,使用旧语法 此选项在Connector / NET中已弃用,在MySqlConnector中不受支持。
ProcedureCacheSize,Procedure Cache Size,ProcedureCache,Procedure Cache   MySqlConnector对缓存的存储过程元数据量没有限制。它需要非常少的内存。
RespectBinaryFlags,尊重二进制标志 真正 始终遵守列的二进制类型。
SharedMemoryName,共享内存名称 真正 共享内存(在Windows上)不支持作为连接协议。
SqlServerMode,Sql Server Mode 不支持。
TreatBlobsAsUtf8,将BLOB视为UTF8 不支持。BLOB总是返回为byte[]
UsePerformanceMonitor,Use Performance Monitor,UserPerfMon,PerfMon 不支持。
使用UsageAdvisor,使用Usage Advisor,Usage Advisor
posted @   silentmuh  阅读(2831)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
Live2D
欢迎阅读『MySqlConnector连接选项』
  1. 1 Walk Thru Fire Vicetone
  2. 2 爱你 王心凌
  3. 3 Inspire Capo Productions - Serenity
  4. 4 Welcome Home Radical Face
  5. 5 粉红色的回忆 李玲玉
爱你 - 王心凌
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 陈思宇/谈晓珍/潘瑛

作曲 : Lee Yong Min/Hwang Se Joon

Rap词:MC HAN韩勇

RAP:

Ya boy MC HAN

我弹的钢琴都是为了你弹

弹了那么久还是觉得浪漫

我弹的时候能听到你在唱

感觉上你在这

跟我一起说话

一天到晚 我不停地想

You’re all that I think of

You’re all that I want

跟你一起总是让我特别开心

不论发生什么事我永远爱你

如果你突然打了个喷嚏 那一定就是我在想你

如果半夜被手机吵醒 啊那是因为我关心

常常想你说的话是不是别有用心

明明很想相信 却又忍不住怀疑

在你的心里 我是否就是唯一 爱就是有我常烦着你

Ho Baby 情话多说一点 想我就多看一眼

表现多一点点 让我能 真的看见

Oh Bye 少说一点 想陪你不止一天

多一点 让我 心甘情愿 爱你

喜欢在你的臂弯里胡闹 你的世界是一座城堡

在大头贴画满心号 贴在手机上对你微笑

常常想我说的话你是否听得进去

明明很想生气 却又止不住笑意

Oh Oh 在我的心里 你真的就是唯一 爱就是有我常赖着你

Ho Baby 情话多说一点 想我就多看一眼

表现多一点点 让我能 真的看见

Oh Bye 少说一点 想陪你不止一天

多一点 让我 心甘情愿 爱你

就这样 一天多一点 慢慢地累积感觉

两人的世界 就能够贴近一点

Ho Baby 情话多说一点 想我就多看一眼

表现多一点点 让我能 真的看见

Oh Bye 少说一点 想陪你不止一天

多一点 让我 心甘情愿 爱你

Ho Baby 情话多说一点 想我就多看一眼

表现多一点点 让我能 真的看见

Oh Bye 少说一点 想陪你不止一天

多一点 让我 心甘情愿 爱你

多一点 才会慢慢发现 因为你 让我心甘情愿

(OT:Nae Yae Gil Eo Bwa)

点击右上角即可分享
微信分享提示