MySQL中的客户端选项(四)

embedded/2024/10/9 13:23:56/

用于连接到服务器的传输协议。当其他连接参数通常导致使用的协议不是您想要的协议时,它很有用。

不缓存每个查询的结果,而是实时地打印每一行,如果输出被挂起,这可能会减慢服务器的速度。有了这个选项,mysql就不会使用历史文件。

默认情况下,mysql客户端在输出任何内容之前会获取查询的所有结果行,并在存储这些行时计算每个列的实际值的连续最大长度。当打印输出时,它会使用这个最大值来格式化输出。

但是,当使用--quick选项时,mysql客户端不会在开始之前为要计算长度的行而等待,而是直接使用可能的最大长度。这是因为--quick选项被设计为用于那些可能返回大量结果集的情况,其中客户端可能无法将所有结果存储在内存中,或者用户可能希望尽快看到初始结果。

下面的例子中,表t1有一个类型为BIGINT的单一列,并包含4行。默认输出是9个字符宽,这个宽度等于返回行中任何列值的最大字符数(5,假设最大的BIGINT值在这个例子中没有出现),加上用于填充的空格和用作列分隔符的|字符(每个2个字符)。

但是,当使用--quick选项时,输出宽度将是25个字符宽。这是因为--quick会假设最大可能值(对于(有符号)BIGINT列,这是-9223372036854775808),并将其转换为字符串(需要19个字符),再加上用于填充和列分隔符的4个字符。

区别可以从下面的代码中看出:

$> mysql -t test -e "SELECT * FROM t1"
+-------+
| c1    |
+-------+
|   100 |
|  1000 |
| 10000 |
|    10 |
+-------+$> mysql --quick -t test -e "SELECT * FROM t1"
+----------------------+
| c1                   |
+----------------------+
|                  100 |
|                 1000 |
|                10000 |
|                   10 |
+----------------------+

对于表格输出,围绕列的“装箱”使一个列值能够与另一个列的值区分开来。对于非特殊输出(例如在批处理模式下生成的,或者在给定--batch或--silent选项时生成的),特殊字符会在输出中转义,以便轻松识别。换行符、制表符、NUL和反斜杠分别写成\n、\t、\0和\\。--raw选项禁用此字符转义。

以下示例演示了表格输出与非表格输出以及使用原始模式禁用转义:

% mysql
mysql> SELECT CHAR(92);
+----------+
| CHAR(92) |
+----------+
| \        |
+----------+% mysql -s
mysql> SELECT CHAR(92);
CHAR(92)
\\% mysql -s -r
mysql> SELECT CHAR(92);
CHAR(92)
\

如果与服务器的连接丢失,请自动尝试重新连接。每次连接丢失时,都会进行一次重新连接尝试。要抑制重新连接行为,请使用--skip-reconnect。

当这个选项启用时,UPDATEDELETE语句如果其WHERE子句中没有使用键(通常是主键或唯一键)或者没有LIMIT子句,那么它们将产生错误。这是为了防止意外地更新或删除大量数据。

此外,当这个选项启用时,对于预计会产生非常大结果集的SELECT语句也会有限制。虽然SELECT语句本身不会修改数据,但返回大量数据可能会对性能和网络产生重大影响。

如果已经在一个选项文件中设置了--safe-updates,但想在某个特定的命令行中覆盖这个设置,可以使用--skip-safe-updates选项。

使用 --safe-updates时SELECT语句的自动限制(默认值为1000)。

PEM格式文件的路径名,包含服务器进行基于RSA密钥对的密码交换所需的公钥的客户端副本。此选项适用于使用sha256_password或caching_sha2_password身份验证插件进行身份验证的客户端。对于未使用其中一个插件进行身份验证的帐户,将忽略此选项。如果不使用基于RSA的密码交换,也会忽略它,就像客户端使用安全连接连接到服务器时的情况一样。

如果给定了 --server-public-key-path=file_name 并指定了一个有效的公钥文件,则它优先于--get-server-public-key。

对于sha256_password,此选项仅适用于使用OpenSSL构建MySQL的情况。

在Windows上,用于使用共享内存连接到本地服务器的共享内存名称。默认值为MYSQL。共享内存名称区分大小写。

仅当服务器启动时已启用shared_memory系统变量以支持共享内存连接时,此选项才适用。

如果有,请在每条语句后显示警告。此选项适用于交互式和批处理模式。

忽略SIGINT信号(通常是键入Control+C的结果)。

如果没有此选项,键入Control+C将中断当前语句(如果有),否则将取消任何部分输入行。

Silent mode (沉默模式): 当启用这个选项时,MySQL客户端会产生更少的输出。这个选项可以多次给出,每次给出都会使输出内容进一步减少。

此选项会产生非特殊的输出格式和特殊字符的转义。可以通过使用raw模式禁用转义。

不要在结果中写入列名。使用此选项会使输出右对齐,如下所示:

$> echo "SELECT * FROM t1" | mysql -t test
+-------+
| c1    |
+-------+
| a,c,d |
| c     |
+-------+
$> echo "SELECT * FROM t1" | ./mysql -uroot -Nt test
+-------+
| a,c,d |
|     c |
+-------+

当这个选项被启用时,错误消息将不会包含行号。这在某些情况下是有用的,特别是当你想要比较包含错误消息的结果文件时。

对于指定连接到本地服务器的连接,要使用的Unix套接字文件,或者在Windows上要使用的命名管道的名称。

在Windows系统上,MySQL服务器可以支持命名管道连接,这是一种在本地计算机上的进程间通信(IPC)机制。但是,命名管道连接的使用需要服务器在启动时启用了named_pipe系统变量。此外,连接的用户必须是Windows组的一个成员,该组由named_pipe_full_access_group系统变量指定。

--ssl*

以--ssl开头的选项指定是否使用加密连接到服务器,并指示在哪里可以找到ssl密钥和证书。

--ssl-fips-mode选项控制是否在客户端启用FIPS(Federal Information Processing Standards,联邦信息处理标准)模式。FIPS模式是一套由美国国家标准与技术研究所(NIST)制定的加密标准,旨在确保加密算法的安全性和一致性。

--ssl-fips-mode选项与其他--ssl-xxx选项的不同之处在于,它并不用于建立加密连接,而是用于控制允许哪些加密操作。换句话说,即使你在MySQL连接中没有使用SSL/TLS加密(例如,通过--ssl-mode=DISABLED),你仍然可以启用FIPS模式来限制某些加密操作。

以下是--ssl-fips-mode选项可以接受的值及其意义:

  • OFF: 禁用FIPS模式。客户端将不会限制其加密操作到FIPS批准的算法或模式。

  • ON: 启用FIPS模式。客户端将限制其加密操作到FIPS批准的算法或模式,但可能允许一些非FIPS标准的操作或算法在特定情况下使用。

  • STRICT: 启用“严格”FIPS模式。客户端将仅使用FIPS批准的算法或模式,并且在任何情况下都不会使用非FIPS标准的操作或算法。这通常是最安全但也是最严格的设置,因为它可能限制了某些功能或操作。

如果OpenSSL FIPS对象模块不可用,则--ssl FIPS模式唯一允许的值为OFF。在这种情况下,将--ssl fi普斯模式设置为ON或STRICT会导致客户端在启动时产生警告,并在非FIPS模式下操作。

从MySQL 8.0.34开始,不赞成使用此选项。预计它将在MySQL的未来版本中被删除。

此选项使mysql向系统日志记录工具发送交互式语句。在Unix上,这是syslog;在Windows上,它是Windows事件日志。记录的消息显示的目的地取决于系统。在Linux上,目标通常是/var/log/messages文件。

以下是在Linux上使用--syslog生成的输出示例。此输出的格式是为了可读性;每个记录的消息实际上只占用一行。

Mar  7 12:39:25 myhost MysqlClient[20824]:SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;'
Mar  7 12:39:28 myhost MysqlClient[20824]:SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'

以表格格式显示输出。这是交互式使用的默认设置,但可以用于以批处理模式生成表输出。

将输出的副本附加到给定的文件。此选项仅适用于交互式模式。

在MySQL中,对于使用TLSv1.3加密的连接,--tls-ciphersuites 选项允许你指定一组可接受的密码套件(ciphersuites)。该值是一个或多个由冒号(:)分隔的密码套件名称列表。你可以指定的密码套件名称取决于用来编译MySQL的SSL库。

此选项是在MySQL 8.0.16中添加的。

对于加密连接,MySQL 的 --ssl-mode 或相关的配置选项允许你指定允许的 TLS 协议。这些协议定义了用于建立安全连接的网络通信协议。当设置这个选项时,你需要提供一个或多个以逗号分隔的协议名称列表。

可以为此选项命名的协议取决于用于编译 MySQL 的 SSL 库。不同的 SSL 库(如 OpenSSL、yaSSL、WolfSSL 等)支持不同的 TLS 协议版本。

每次查询后刷新缓冲区。

用于连接到服务器的MySQL帐户的用户名。

详细模式。产生更多关于程序功能的输出。可以多次提供此选项以产生越来越多的输出。(例如,-v-v-v即使在批处理模式下也会生成表输出格式。)

显示版本信息并退出。

垂直打印查询输出行(每列值一行)。如果没有此选项,您可以通过用\G终止单个语句来指定垂直输出。

如果无法建立连接,请等待并重试,而不是中止。

产生XML输出。

<field name="column_name">NULL</field>

当--xml与mysql一起使用时,输出与mysqldump--xml的输出相匹配。

XML输出还使用XML名称空间,如下所示:

$> mysql --xml -uroot -e "SHOW VARIABLES LIKE 'version%'"
<?xml version="1.0"?><resultset statement="SHOW VARIABLES LIKE 'version%'" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="Variable_name">version</field>
<field name="Value">5.0.40-debug</field>
</row><row>
<field name="Variable_name">version_comment</field>
<field name="Value">Source distribution</field>
</row><row>
<field name="Variable_name">version_compile_machine</field>
<field name="Value">i686</field>
</row><row>
<field name="Variable_name">version_compile_os</field>
<field name="Value">suse-linux-gnu</field>
</row>
</resultset>

用于连接到使用zstd压缩算法的服务器的压缩级别。允许的级别为1到22,较大的值表示压缩级别的增加。默认的zstd压缩级别为3。压缩级别设置对不使用zstd压缩的连接没有影响。

此选项是在MySQL 8.0.18中添加的。


http://www.ppmy.cn/embedded/51199.html

相关文章

HTTP性能测试工具-wrk

wrk性能测试工具详解 wrk是一款轻量级但功能强大的HTTP基准测试工具&#xff0c;主要用于在单机多核CPU环境下对HTTP服务进行性能测试。它通过利用系统自带的高性能I/O机制&#xff08;如epoll、kqueue等&#xff09;&#xff0c;结合多线程和事件模式&#xff0c;能够产生大量…

数学建模系列(1/4):数学建模简介

引言 数学建模是将现实中的问题转化为数学语言&#xff0c;通过构建数学模型加以解决的一门强大工具。其应用广泛&#xff0c;涵盖了从工程、金融到生物学等多个领域。本文将详细讲解数学建模的基本概念、历史背景、应用领域、数学建模的步骤&#xff0c;以及一个实际案例。 1.…

打包体积分析和优化

webpack分析工具&#xff1a;webpack-bundle-analyzer 1. 通过<script src"./vue.js"></script>方式引入vue、vuex、vue-router等包&#xff08;CDN&#xff09; // webpack.config.js if(process.env.NODE_ENVproduction) {module.exports {devtool:…

# [0622] Task02 model-free 免模型类 RL 算法的预测和控制 【ε 贪心策略 优化的证明】

easy-rl PDF版本 笔记整理 P3 joyrl 比对 补充 P4 - P5 相关 代码 整理 ——> 有空 另开一页 最新版PDF下载 地址&#xff1a;https://github.com/datawhalechina/easy-rl/releases 国内地址(推荐国内读者使用)&#xff1a; 链接: https://pan.baidu.com/s/1isqQnpVRWbb3yh8…

Hadoop升级失败,File system image contains an old layout version -64

原始版本 Hadoop 3.1.3 升级版本 Hadoop 3.3.3 报错内容如下 datasophon 部署Hadoop版本 查看Hadoop格式化版本 which hadoop-daemon.sh/bigdata/app/hadoop-3.1.3/sbin/hadoop-daemon.sh删除原来的旧版本 rm -rf /bigdata/app/hadoop-3.1.3查看环境变量 env|grep HADOOPHAD…

C# 中的静态关键字

C# 语言中的 static 关键字用于声明静态类和静态类成员。静态类和静态类成员&#xff08;如构造函数、字段、属性、方法和事件&#xff09;在只需要一个对象&#xff08;类或类成员&#xff09;副本并在类型&#xff08;和成员&#xff09;的所有实例&#xff08;对象&#xff…

如何用python调用C++处理图片

一. 背景 用pyhton可直接调用C&#xff0c;减少重写的工作量&#xff1b;部分逻辑运算&#xff0c;C的执行效率高&#xff0c;可进行加速。 下面就一个简单的C滤镜&#xff08;彩色图转灰度图&#xff09;为例&#xff0c;展示python调用C 二. 代码实现 代码结构如下&#x…

Kimichat使用案例018:一键总结网页内容(浏览器插件Kimi Copilot)

文章目录 一、介绍二、安装三、使用 一、介绍 在阅读网页的时候&#xff0c;如果需要总结网页内容要点&#xff0c;可以把链接丢进Kimichat&#xff0c;让它总结。但是&#xff0c;这样稍微有些麻烦。Chrome浏览器现在已经有一个非官方的Kimichat插件&#xff1a;Kimi Copilot…