本节介绍大多数MySQL客户端程序支持的选项,这些选项控制客户端程序如何建立到服务器的连接,连接是否加密,连接是否压缩。这些选项可以在命令行或选项文件中给出。
本节描述控制客户端程序如何建立到服务器的连接的选项。有关展示如何使用它们的其他信息和示例,请参阅
表4.3连接建立选项汇总
选项名称 描述 ——default-auth 使用的身份验证插件 ——主机 主机位于mysql服务器上 - 密码 连接到服务器时要使用的密码 ——管 使用命名管道连接到服务器(仅适用于Windows) ——plugin-dir 安装插件的目录 - 港口 连接的TCP/IP端口号 - 协议 运输协议使用 ——shared-memory-base-name 共享内存连接的共享内存名称(仅限Windows) ——套接字 UNIX套接字文件或Windows命名为Pipe使用 ——用户 连接到服务器时使用的MySQL用户名
关于使用哪个客户端身份验证插件的提示。看到
——主机=
,host_name
- h
host_name
MySQL服务器运行的主机。取值为主机名、IPv4地址或IPv6地址。默认值为
本地主机
.——密码(=
,pass_val.
]- p (
pass_val.
]连接服务器使用的MySQL帐号的密码。密码为可选参数。如果没有给出,程序将提示输入一个。如果给予,就一定有没有空间之间的
——密码=
或- p
还有密码。如果不指定密码选项,默认是不发送密码。在命令行上指定密码应该被认为是不安全的。要避免在命令行上给出密码,请使用选项文件。看到
——skip-password
选择。——管
,-W.
在Windows上,使用命名管道连接到服务器。此选项仅在服务器以
named_pipe.
启用系统变量以支持命名管道连接。此外,使连接必须是由此指定的Windows组的成员named_pipe_full_access_group
系统变量。在其中寻找插件的目录。,则指定此选项
——default-auth
选项用于指定身份验证插件,但客户端程序没有找到它。看到- 口交=
,port_num.
-P.
port_num.
对于TCP/IP连接,要使用的端口号。默认端口号为3306。
此选项显式指定连接到服务器时使用的传输协议。当其他连接参数通常导致使用一个协议而不是您想要的协议时,它是有用的。例如,Unix上连接到
本地主机
默认情况下使用Unix套接字文件:mysql——主机= localhost
要强制使用TCP / IP传输,请指定a
- 协议
选择:mysql——主机= localhost = TCP协议
下表显示了允许的
- 协议
选项值并指示每个值的适用平台。值不区分大小写。- 协议
价值传输协议使用 适用的平台 TCP
TCP / IP传输到本地或远程服务器 全部 插座
到本地服务器的Unix套接字文件传输 Unix和类Unix系统 管道
到本地服务器的命名管道传输 视窗 内存
到本地服务器的共享内存传输 视窗 在Windows上,用于使用共享内存与本地服务器建立连接的共享内存名称。默认值为
mysql.
.共享内存名称区分大小写。此选项仅在服务器以
shared_memory
支持共享内存连接的系统变量。——套接字=
,路径
-
路径
在UNIX上,UNIX套接字文件的名称用于使用命名管道到本地服务器的连接。默认的UNIX套接字文件名称是
/ tmp / mysql.sock
.在Windows上,用于连接到本地服务器的已命名管道的名称。默认的Windows管道名称是
MySQL
.管道名称不区分大小写。在Windows上,仅当服务器以
named_pipe.
启用系统变量以支持命名管道连接。此外,使连接必须是由此指定的Windows组的成员named_pipe_full_access_group
系统变量。——用户=
,user_name
- u
user_name
MySQL帐户的用户名用于连接到服务器。默认用户名是
ODBC.
在unix上的Windows或UNIX登录名上。
本节介绍客户端程序的选项,这些选项指定是否使用到服务器的加密连接、证书和密钥文件的名称以及与加密连接支持相关的其他参数。有关建议使用的示例以及如何检查连接是否加密,请参见
这些选项仅对使用加密传输协议的连接有效;即TCP/IP和Unix套接字文件连接。看到加密连接支持. 表4.4连接加密选项摘要 向服务器请求RSA密钥对密码交换所需的公钥。属性进行身份验证的客户端可使用此选项 如果 PEM格式文件的路径名,其中包含服务器为RSA密钥对密码交换所需要的公钥的客户端副本。属性进行身份验证的客户端可使用此选项 如果 只有使用OpenSSL构建MySQL时,这个选项才可用。 有关 PEM格式中证书颁发机构(CA)证书文件的路径名。该文件包含可信SSL证书颁发机构的列表。 要告诉客户机在建立到服务器的加密连接时不验证服务器证书,请指定两者都不验证 若要指定服务器的CA文件,请设置 包含PEM格式的可信SSL证书颁发机构(CA)证书文件的目录的路径名。 要告诉客户机在建立到服务器的加密连接时不验证服务器证书,请指定两者都不验证 要指定服务器的CA目录,请设置 PEM格式的客户端SSL公钥证书文件的路径名。 若要指定服务器SSL公钥证书文件,请设置 使用TLSv1.2以上TLS协议的连接允许的加密密码列表。如果列表中不支持任何密码,则使用这些TLS协议的加密连接将无法工作。 最大的可移植性, OpenSSL支持在OpenSSL文档中描述的指定密码的语法10bet官方网站https://www.openssl.org/docs/manmaster/man1/ciphers.html. 有关MySQL支持的加密密码的信息,请参见 包含PEM格式证书撤销列表的文件路径名。 如果既不 为服务器指定撤销列表文件,请设置 PEM格式证书撤销列表文件所在目录的路径名。 如果既不 若要指定服务器的撤销列表目录,请设置 控制是否在客户端启用FIPS模式。的 如果OpenSSL FIPS对象模块不可用,则允许的唯一值 如果要指定服务器的FIPS模式,请设置 PEM格式的客户端SSL私钥文件路径。为提高安全性,建议使用RSA密钥长度大于等于2048位的证书。 如果密钥文件由密码保护保护,则客户端程序会提示用户进行密码。密码必须交互方式;它无法存储在文件中。如果密码短语不正确,则程序将继续似乎无法读取密钥。 若要指定服务器SSL私钥文件,请设置 此选项指定到服务器的连接所需的安全状态。这些模式值是允许的,按严格程度递增排列: 通过Unix套接字文件的连接不使用模式进行加密 从MySQL 8.0.12开始,如果客户端使用OpenSSL 1.0.2或更高版本,客户端将检查它用于连接的主机名是否匹配服务器证书中的Subject Alternative name值或Common name值。主机名标识验证也适用于使用通配符指定通用名的证书。 否则,客户端将检查用于连接的主机名是否与服务器证书中的Common name值匹配。 如果存在不匹配,则连接失败。对于加密连接,此选项有助于防止中间人攻击。 主机名身份验证 如果 为 一个显式的 要要求MySQL帐户使用加密连接,请使用 的 此选项指定客户端允许使用TLSv1.3的加密连接使用哪些加密套件。该值是一个由0个或多个以冒号分隔的密文套件名称组成的列表。例如: 可以为此选项命名的CIPhersuites依赖于用于编译MySQL的SSL库。如果未设置此选项,则客户端允许默认的CIPhersuites集。如果该选项设置为空字符串,则不启用CIPherSuites并无法建立加密连接。有关更多信息,请参阅 此选项指定客户端允许加密连接使用的TLS协议。一个或多个以逗号分隔的协议版本列表。例如: 该选项可以命名的协议依赖于用于编译MySQL的SSL库。应该选择允许的协议,比如不离开”孔”在列表中。例如,这些值没有空洞: 这些值确实有孔,不应使用: 有关详细信息,请参见 本节介绍启用客户端程序以控制对服务器连接使用压缩的选项。有关展示如何使用它们的其他信息和示例,请参阅
表4.5连接 - 压缩选项摘要 尽可能压缩客户端和服务器之间发送的所有信息。 从MySQL 8.0.18开始,这个选项已被弃用。预计它将在MySQL的未来版本中被删除。看到 允许的压缩算法用于与服务器的连接。可用的算法与该算法相同 这个选项是在MySQL 8.0.18中添加的。 的服务器连接所使用的压缩级别 这个选项是在MySQL 8.0.18中添加的。
选项名称
描述
介绍
——get-server-public-key
向服务器请求RSA公钥
——server-public-key-path
包含RSA公钥的文件的路径名
——ssl-ca
包含受信任SSL证书颁发机构列表的文件
——ssl-capath
包含受信任的SSL证书颁发机构证书文件的目录
——ssl-cert
包含X.509证书的文件
——ssl cipher
允许的密码用于连接加密
——ssl-crl
包含证书撤销列表的文件
——ssl-crlpath
包含证书撤销列表文件的目录
——ssl-fips-mode
是否在客户端启用FIPS模式
--ssl-key.
包含X.509密钥的文件
——ssl-mode
到服务器的所需安全状态
- TLS-CIPHESUITES.
允许用于加密连接的TLSv1.3加密套件
8.0.16
——tls版本
允许用于加密连接的TLS协议
caching_sha2_password
身份验证插件。对于该插件,服务器不会发送公钥,除非请求。对于未使用该插件进行身份验证的帐户,此选项将被忽略。如果不使用基于rsa的密码交换,它也会被忽略,比如当客户端使用安全连接连接到服务器时。--server-public-keat-path =
给定并指定一个有效的公钥文件,它优先于file_name
——get-server-public-key
.SHA256_PASSWORD.
或caching_sha2_password
身份验证插件。对于没有使用这些插件之一进行身份验证的帐户,此选项将被忽略。如果不使用基于rsa的密码交换,它也会被忽略,比如当客户端使用安全连接连接到服务器时。--server-public-keat-path =
给定并指定一个有效的公钥文件,它优先于file_name
——get-server-public-key
.SHA256_PASSWORD.
和caching_sha2_password
插件,看到——ssl-ca
也不——ssl-capath
.服务器仍然根据为客户端帐户建立的任何适用需求来验证客户端,并且它仍然使用任何ssl_ca.
或ssl_capath.
服务器端指定的系统变量值。ssl_ca.
系统变量。——ssl-ca
也不——ssl-capath
.服务器仍然根据为客户端帐户建立的任何适用需求来验证客户端,并且它仍然使用任何ssl_ca.
或ssl_capath.
服务器端指定的系统变量值。ssl_capath.
系统变量。ssl_cert
系统变量。cipher_list
应该是一个由一个或多个密码名组成的列表,用冒号分隔。例子:——ssl cipher = AES128-SHA ssl cipher = DHE-RSA-AES128-GCM-SHA256: AES128-SHA
ssl_cipher
系统变量。——ssl-crl
也不——ssl-crlpath
给出,即使CA路径包含证书撤销列表,也没有执行CRL检查。ssl_cl.
系统变量。——ssl-crl
也不——ssl-crlpath
给出,即使CA路径包含证书撤销列表,也没有执行CRL检查。ssl_crlpath
系统变量。——ssl-fips-mode
Option区别于其他——ssl
选项,它不用于建立加密连接,而是用于影响允许哪些加密操作。看到XXX.
——ssl-fips-mode
值是允许的:
离开
:关闭FIPS模式。在
:启用FIPS模式。严格的
: 使能够”严格的”FIPS模式。——ssl-fips-mode
是离开
.在本例中,设置——ssl-fips-mode
来在
或严格的
导致客户端在启动时产生警告,并以非fips模式运行。ssl_fips_mode
系统变量。ssl_key
系统变量。
禁用
:建立未加密的联系。首选
:如果服务器支持加密连接,则建立加密连接;如果无法建立加密连接,则退回到未加密连接。这是默认的if——ssl-mode
没有指定。首选
.要对Unix套接字文件连接执行加密,请使用要求
或者更严格。(但是,套接字文件传输在默认情况下是安全的,因此加密套接字文件连接并不会提高安全性,还会增加CPU负载。)要求
:如果服务器支持加密连接,则选择加密连接。如果无法建立加密连接,则连接尝试将失败。验证_ca.
:就像要求
,但还要根据配置的CA证书验证服务器证书颁发机构(CA)证书。如果没有找到有效的匹配的CA证书,则连接尝试失败。VERIFY_IDENTITY
:就像验证_ca.
,但另外执行主机名身份验证,检查客户端连接到服务器使用的主机名与服务器发送给客户端的证书中的身份:
VERIFY_IDENTITY
不能使用由服务器自动创建或手动使用的自签名证书mysql_ssl_rsa_setup(见——ssl-mode
选项与CA证书选项交互如下:
——ssl-mode
不是显式设置,否则使用——ssl-ca
或——ssl-capath
意味着——ssl-mode = VERIFY_CA
.——ssl-mode
的值验证_ca.
或VERIFY_IDENTITY
,——ssl-ca
或——ssl-capath
也需要,提供与服务器使用的CA证书匹配。——ssl-mode
值为。的选项验证_ca.
或VERIFY_IDENTITY
,一个明确的——ssl-ca
或——ssl-capath
选项会生成一个警告,说明没有执行服务器证书的验证,尽管已指定了CA证书选项。创建用户
用一个创建帐户要求SSL.
条款,或使用改变用户
用于添加一个现有帐户要求SSL.
条款。这将导致使用该帐户的客户端连接尝试被拒绝,除非MySQL支持加密连接,并且可以建立加密连接。要求
子句允许使用其他与加密相关的选项,这些选项可用于执行比要求SSL.
.有关哪些命令选项可以或必须由使用各种配置的帐户连接的客户端指定的附加细节要求
选项,参见mysql——tls-ciphersuites = "suite1:suite2:suite3"
tls_ciphersuites
系统变量。mysql --tls-version =“tlsv1.1,tlsv1.2”
--tls-version =“tlsv1,tlsv1.1,tlsv1.2,tlsv1.3”--tls-version =“tlsv1.1,tlsv1.2,tlsv1.3”--tls-version =“tlsv1.2,tlsv1.3“--tls-version =”tlsv1.3“
——tls = " TLSv1, TLSv1.2”——tls =“TLSv1.1, TLSv1.3”
tls_version
系统变量。
选项名称
描述
介绍
弃用
——压缩
压缩客户端和服务器之间发送的所有信息
8.0.18
——压缩算法
服务器连接允许的压缩算法
8.0.18
——zstd-compression-level
到使用zstd压缩的服务器的连接的压缩级别
8.0.18
——压缩
,-C
protocol_compression_algorithms
系统变量。默认值为未压缩的
.zstd
压缩算法。允许的级别从1到22,越大的值表示压缩级别越高。默认的zstd
压缩级别为3。压缩级别设置对不使用的连接没有影响zstd
压缩。