MySQL中的客户端选项(四)

news2025/1/21 9:25:48

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

不缓存每个查询的结果,而是实时地打印每一行,如果输出被挂起,这可能会减慢服务器的速度。有了这个选项,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.coloradmin.cn/o/1837762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT基础 - 窗口弹窗

目录 零. 窗口简介 一. 普通窗口 二. 无边框窗口 三. 顶层窗口 四. 模态对话框 五. 非模态对话框 六. 消息对话框 七. 文件对话框 八. 颜色对话框 九. 进度对话框 十. 总结 零. 窗口简介 在 Qt中&#xff0c;普通窗口是指程序的整体界面&#xff0c;可以包含标题栏、…

GIS设计与开发课程设计(三)

环境&#xff1a;Windows10专业版 ArcGIS10.2 ArcEngine10.2 Visual Studio 2019 因每个人电脑版本和软件版本不同&#xff0c;运行的结果可能不同 系列文章&#xff1a; GIS设计与开发课程设计&#xff08;一&#xff09; GIS设计与开发课程设计&#xff08;二&#xff09;…

SpringMVC系列三: Postman(接口测试工具)

接口测试工具 &#x1f49e;Postman(接口测试工具)Postman介绍Postman是什么Postman相关资源Postman安装Postman快速入门Postman完成Controller层测试其它说明 &#x1f49e;课后作业 上一讲, 我们学习的是SpringMVC系列二: 请求方式介绍 现在打开springmvc项目 &#x1f49e…

公司面试题总结(六)

31.说一说 webpack 的构建流程是什么&#xff1f; ⚫ 初始化流程&#xff1a; ◼ 从配置文件和 Shell 语句中读取与合并参数 ◼ 初始化需要使用的插件和配置插件等执行环境所需要的参数 ⚫ 编译构建流程&#xff1a; ◼ 从 Entry 发出&#xff0c;针对每个 Module 串行…

本地部署Ollama+qwen本地大语言模型Web交互界面

什么是 Ollama WebUI&#xff1f; Ollama WebUI 已经更名为 Open WebUI. Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI&#xff0c;旨在完全离线操作。它支持各种 LLM 运行程序&#xff0c;包括 Ollama 和 OpenAI 兼容的 API。 Ollama WebUI 是一个革命性的 L…

酷开会员 | 酷开系统将艺术、回忆与浪漫融入生活

随着审美观念的改变以及技术的提升&#xff0c;消费者对家用电视的需求已不局限于单纯的功能性&#xff0c;外观设计带来的美感与视觉效果也愈发成为消费者关注的焦点。在画质和功能逐步完善的当下&#xff0c;电视中的壁纸模式&#xff0c;则能让其更好地融入家居环境&#xf…

深度学习入门5——为什么神经网络可以学习?

在理解神经网络的可学习性之前&#xff0c;需要先从数学中的导数、数值微分、偏导数、梯度等概念入手&#xff0c;从而理解为什么神经网络具备学习能力。 1.数值微分的定义 先从导数出发理解什么是梯度。某一点的导数直观理解就是在该点的切线的斜率。在数学中导数表示某个瞬…

AI智能盒子助力打造垃圾发电AI应用标杆!

垃圾焚烧发电作为一种新型的垃圾处理方式&#xff0c;能将其转化为电能&#xff0c;实现资源的再利用&#xff0c;成为实现节能环保的重要方式之一。为有效落实环境、安全、健康及社会责任管理体系&#xff0c;知名垃圾发电投资运营商光大环保能源致力于广泛利用科技&#xff0…

ubuntu永久换镜像源详细方法

1.查看ubuntu的版本&#xff0c;不同的版本对应的不同的镜像源&#xff08;下面会讲到&#xff0c;先按步骤操作即可&#xff09; cat /etc/issue 2.先备份一个&#xff0c;防止更改错误 cp /etc/apt/sources.list /etc/apt/sources.list.backup 3.备份好之后删除原有的sour…

Linux系统之mtr命令的基本使用

Linux系统之mtr命令的基本使用 一、mtr命令介绍二、mtr命令使用帮助2.1 mtr命令的帮助信息2.2 mtr帮助信息解释 三、安装mtr工具四、mtr命令的基本使用4.1 直接使用4.2 设定ping次数4.3 禁用DNS解析4.4 显示IP地址4.5 调整间隔 五、总结 一、mtr命令介绍 mtr命令是一个网络诊断…

Vulnhub——AI: WEB: 1

渗透复现 &#xff08;1&#xff09;目录扫描爆破出隐藏页面info.php和传参页面&#xff0c;泄露网站绝对路径并且存在SQL注入点 &#xff08;2&#xff09;已知网站绝对路径&#xff0c;存在SQL注入点&#xff0c;尝试OS-shell写入 &#xff08;3&#xff09;OS-shell写入后…

MySQL----redo log重做日志原理及流程

重做日志 redo log&#xff1a;重做日志&#xff0c;用于记录事务操作的变化&#xff0c;确保事务的持久性。redo log是在事务开始后就开始记录&#xff0c;不管事务是否提交都会记录下来&#xff0c;在异常发生时&#xff08;如数据持久化过程中掉电&#xff09;&#xff0c;…

【AI学习】LLaMA 系列模型的进化(一)

一直对LLaMA 名下的各个模型关系搞不清楚&#xff0c;什么羊驼、考拉的&#xff0c;不知所以。幸好看到两篇综述&#xff0c;有个大致了解&#xff0c;以及SEBASTIAN RASCHKA对LLaMa 3的介绍。做一个记录。 一、文章《Large Language Models: A Survey》中对LLaMa的介绍 论文…

【博士每天一篇文献-算法】Memory aware synapses_ Learning what (not) to forget

阅读时间&#xff1a;2023-12-13 1 介绍 年份&#xff1a;2018 作者&#xff1a;Rahaf Aljundi,丰田汽车欧洲公司研究员;阿卜杜拉国王科技大学(KAUST)助理教授;Marcus Rohrbach德国达姆施塔特工业大学多模式可靠人工智能教授 会议&#xff1a; Proceedings of the European c…

【串口通信-USART】

串口通信 前言一、串行通信和并行通信二、波特率三、USRAT如何实现USART 四、通信的时候共地五、奇偶校验位总结 前言 大三上时候的笔记⇨32入门-串口通信-发送和接收数据&#x1f31f;更加偏向32部分的吧。 大三上左右的时候写过串口通信的笔记&#xff0c;那时候虽然青涩啥也…

结硬寨:联想服务器的向前之路

曾国藩曾经将自己的战略思想&#xff0c;总结为“结硬寨&#xff0c;打呆仗”。 这种稳健的策略&#xff0c;往往在真实的产业发展中能收获奇效。我们喜欢听颠覆性的产业创新&#xff0c;却往往忽视稳扎稳打&#xff0c;把每一个优势聚集起来形成整体优势&#xff0c;可能才是市…

AI大模型的战场:通用大模型VS垂直大模型,谁会赢?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

vue2动态横条图(横条图样式定时切换)

每次切换成新图后会清除定时器和图&#xff08;重新加载&#xff0c;否则要么会重复加载定时器。清除定时器之后要先调用一次index为0的数据&#xff09; 数据样例 acrossBarDatas:{data: ["80", "80"],sunffix: [单位, "单位"],title: "标…

自然语言处理(NLP)—— 神经网络自然语言处理(Neural NLP)基础知识

1. 文章概览 本文是关于神经网络自然语言处理&#xff08;Neural NLP&#xff09;的概览&#xff0c;涵盖了基础原则、历史概览、处理流程、神经网络架构以及最近的训练范式。 1.1 基本原则 这部分会讲述自然语言处理&#xff08;NLP&#xff09;与神经网络在处理语言任务时遵…

Hbuilder无线连接手机

1.链接数据线进行操作 打开adbs所在位置 2.运行cmd 或者 powershell 3.运行项目