MySqlConnector连接选项「建议收藏」

MySqlConnector连接选项「建议收藏」MySqlConnectorMySqlConnectorhttps://mysqlconnector.net/connection-options/连接选项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。如果SslCert和SslKey使用此选项,则不应指定此选项。
证书密码,CertificatePassword   指定使用该CertificateFile选项指定的证书的密码。如果证书文件未受密码保护,则不需要。
SslCert,Ssl-Cert   指定PEM格式的客户端SSL证书文件的路径。SslKey也必须指定,CertificateFile不应该。netstandard1.3或netstandard2.0平台不支持此选项。
SslKey,Ssl-Key   指定PEM格式的客户端SSL私钥的路径。SslCert也必须指定,CertificateFile不应该。
CA证书文件,CACertificateFile,SslCa,Ssl-Ca   此选项指定PEM编码(.pem)格式的CA证书文件的路径。这应该与SslMode=VerifyCA或者SslMode=VerifyFull用于验证操作系统的证书存储不信任的CA证书。
证书商店位置,CertificateStoreLocation 没有 指定是否应使用计算机上证书存储中的证书加密连接。默认值None表示未使用证书存储区; 值的值CurrentUser或LocalMachine使用指定的商店。
证书指纹,CertificateThumbprint   指定应从上述设置中指定的证书库中使用哪个证书。必须使用此选项指示应将商店中的哪个证书用于身份验证。

连接池选项

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

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

与多个服务器的连接池

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

  • RoundRobin(默认值),:将打开Random总MaximumPoolSize连接数,但它们可能在后端不均匀分布。
  • LeastConnections:MaximumPoolSize将打开总连接数,它们将均匀分布在后端。将以最近最少使用的顺序从池中选择活动连接,这不能确保跨后端的均匀负载。您应该设置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。如果设置为Utc或Local,MySqlException则如果DateTime命令参数的a 或者分别为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 真正 设置为时true,TINYINT(1)值将作为布尔值返回。将此设置为false导致TINYINT(1)以sbyte / byte返回。
使用受影响的行,UseAffectedRows 假 当false(默认)时,连接报告找到行而不是已更改(受影响)的行。设置为true仅报告实际更改的行数UPDATE或INSERT … ON DUPLICATE KEY UPDATE语句。
使用XA Transactions,UseXaTransactions 真正 何时true(默认),使用TransactionScope或MySqlConnection.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 假
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154604.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Eclipse中Editor does not contain a main type 解决方法

    Eclipse中Editor does not contain a main type 解决方法Eclipse中Editordoesnotcontainamaintype解决方法1、问题再现2、原因当前的源代码(所有的包)没有被添加到buildpath中src目录出现错误3、解决方法…

    2022年6月1日
  • 强制升级openssl导致无法使用SSH(生成ssh公钥)

    最近由于工作需求要搭建freeswitch,整个过程比较纠结,遂总结于此留作备忘。起源由于我的需求是将freeswitch跑起来,所以先按照freeswitchwiki上的介绍编译freeswitch,但configure过程便遇到问题:configure:error:OpenSSL>=1.0.1eandassociateddevelopementheadersrequi…

    2022年4月15日
  • rabbitmq使用mqtt协议[通俗易懂]

    rabbitmq使用mqtt协议[通俗易懂]提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、rabbitmq是什么?二、mqtt协议是什么?三、使用步骤1.引入库2.读入数据总结前言在网上学习物联网,发现有人可以用springboot+rabbitmq可以搭建物联网(IOT)平台,rabbitmq不是消息队列吗,原来rabbitmq有两种协议,消息队列是用的AMQP协议,而用在智能硬件中的是MQTT协议。一、rabbitmq是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解

    2022年10月3日
  • linux tty_linux tty

    linux tty_linux ttyLinux中的tty与pts终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。 Teletype是最早出现的一种终端设备——可以称作电传打字机,由Teletype公司生产。tty在Linux系统的设备特殊文件目录/dev/下。终端特殊设备文件一般有以下几种:1、串行端口终端(/dev/ttySn)串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这

    2022年8月9日
  • JAVA留言板_java项目实例源码

    JAVA留言板_java项目实例源码java实现简单留言板功能的代码实例数据库对应的表:guestbook:id,name,phone,email,title,content,time;id新建webproject:guestbookbuildPath:引入连接数据库的驱动的类库在webRoot目录中加入:+faceditor+jsweb.xml代码:xmlns=”http://java….

    2022年9月25日
  • FTP的20、21端口,工作模式

    FTP的20、21端口,工作模式

    2021年9月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号