2.MySQL的调控按钮——启动选项和系统变量
2.MySQL的调控按钮——启动选项和系统变量
- 1.启动选项和配置文件
- 1.1 在命令行上使用选项
- 1.2 配置文件中使用选项
- 1.2.1 配置文件路径
- 1.2.2 配置文件的内容
- 1.2.3 特定 MySQL 版本的专用选项组
- 1.2.4 配置文件的优先级
- 1.2.5 同一个配置文件中多个组的优先级
- 1.2.6 defaults-file 的使用
- 1.3 在命令行和配置文件中启动选项的区别
- 2.系统变量
- 2.1 系统变量简介
- 2.2 查看系统变量
- 2.3 设置系统变量
- 2.3.1 通过启动选项设置
- 2.3.2 服务器程序运行过程中设置
- 2.3.3 启动选项和系统变量的区别
- 3. 状态变量
- 4.总结
1.启动选项和配置文件
MySQL 的服务器和客户端程序有很多设置项:
- 对于
MySQL服务器程序可以指定:- 允许同时连入的客户端数量(默认151)
- 客户端和服务器的通信方式
- 表的默认存储引擎(默认InnoDB)
- 查询缓存大小等信息
- 对于
MySQL客户端程序可以指定:- 需要连接的服务器程序所在主机的主机名或
IP地址、用户名及密码等信息
- 需要连接的服务器程序所在主机的主机名或
上述设置项都可以在程序启动时修改默认值,对于这种在程序启动时指定的设置项也称之为启动项(startup option),这些选项控制着程序(MySQL 安装目录的 bin 目录下的各种可执行文件)启动后的行为。这些启动选项可以在命令行中指定,也可以在配置文件中指定。
1.1 在命令行上使用选项
在启动服务器程序时就禁止各客户端使用 TCP/IP 网络进行通信,可以在启动服务器程序的命令行中添加 skip-networking 启动选项:
mysqld --skip_networking
注:
在命令行中指定启动选项时需要在选项名前加上 – 前缀。如果选项名是由多个单词构成的,它们之间可以由短划线 - 连接,也可以使用下划线 _ 连接。也就是说 skip_networking 和 skip-networking 是等价的
按上述命令启动服务器程序后,如果再使用 mysql 来启动客户端程序,把服务器主机名指定为 127.0.0.1 (IP地址的形式)的话会显示连接失败:
mysql -h127.0.0.1 -uroot -p
Enter password:ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
启动客户端程序时,在 -h 参数后边紧跟服务器 IP 地址,这就意味着客户端要求和服务器之间通过 TCP/IP 网络进行通信。
如果我们想改变表的默认存储引擎,可以这样启动服务器程序:
mysqld --default-storage-engine=MyISAM查看表结构:SHOW CREATE TABLE 表名\G
总结一下,在启动服务器程序的命令后边指定启动选项的通用风格如下:
--启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n]
我们可以将各启动选项写到一行中,每一个启动选项名称前面添加 --,各个启动选项之间使用空白字符隔开。
大多数 MySQL 程序都提供了一个 --help 选项,可以用来查看该程序支持得全部启动选项以及它们的默认值。查看 mysqld 支持的启动选项有些特别,需要使用 mysqld --verbose --help。

1.2 配置文件中使用选项
命令行设置启动选项只对当次启动生效。如果我们将需要设置的启动选项都写在配置文件中,每次启动服务器时都从这个文件中加载相应的启动选项。(推荐)
1.2.1 配置文件路径
MySQL 程序启动时会在多个路径下寻找配置文件,这些路径有的固定,有的可以在命令行中指定。操作系统不同,寻找配置文件路径也不同。
Windows OS 的配置文件
在 Windows OS 中,MySQL 会按照下表所示的路径依次寻找配置文件。


类 UNIX OS 中的配置文件
在 类 UNIX OS 中,MySQL 会按照下表所示的路径依次寻找配置文件。



1.2.2 配置文件的内容
配置文件中的启动选项呗划分为若干个组,每个组有一个组名,用中括号 [] 括起来:

每个组下边可以定义若干个启动选项,以 [server] 组为例看一下填写启动选项的形式:
[server]
option1 # 这是 option1,该选项不需要选项值
option2 = value2 # 这是 option2,该选项需要选项值
...
在配置文件中只能使用长形式的启动选项,且配置文件中指定的启动选项不允许加 – 前缀,每一行只指定一个选项,等号 = 周围可以有空白字符(在命令行中,选项名、=、选项值之间不允许有空白字符)。在配置文件中我们可以使用 # 来添加注释。
配置文件中,不同的选项组是给不同的程序使用的。如果选项组名称与程序名称相同,则组中的选项将专门应用于该程序。例如:[mysqld] 和 [mysql] 组分别应用于 mysqld 服务器程序和 mysql 客户端程序。
有两个选项组比较特别:
[server]组下面的启动选项将作用于所有服务器程序[client]组下面的启动选项将作用于所有客户端程序
需要注意一点,mysqld_safe 和 mysql.server 这两个程序在启动时都会读取 [mysqld] 选项组中的内容。

1.2.3 特定 MySQL 版本的专用选项组

1.2.4 配置文件的优先级
MySQL 在某些固定路径下搜索配置文件,也可以通过命令行中指定 default-extra-file 启动选项来指定额外的配置文件路径。
MySQL 将按照表 2-2 或表 2-3 中给定的顺序(具体取决于所用的操作系统)依次读取各个配置文件。如果该文件不存在则忽略。
注意:
如果在多个配置文件中设置了相同的启动选项,则以最后一个配置文件中的为准。
1.2.5 同一个配置文件中多个组的优先级
如果在同一个配置文件中,如 [mysqld]、[server] 组里出现了同样的启动选项,将以最后一个出现的组中的启动选项为准。
1.2.6 defaults-file 的使用
如果不想让 MySQL 到默认路径下搜索配置文件,可以在命令行指定 defaults-file 选项:
mysqld --defaults-file=/tmp/myconfig.txt
这样一来,程序启动时将只在 /tmp/myconfig.txt 路径下搜索配置文件。如果文件不存在或无法访问,则会发生错误。
defaults-extra-file 和 defaults-file 的区别:
使用 defaults-extra-file 可以指定额外的配置文件路径,那些固定的配置文件路径也会被搜索。
1.3 在命令行和配置文件中启动选项的区别
在命令行中指定的绝大部分启动选项都可以放到配置文件中,但是有一些选项是专门为命令行设计的,比如 defaults-extra-file、defaults-file 这样的选项本身就是为了指定配置文件路径的,如果再放在配置文件中使用就没啥意义了。
注意:
如果同一个启动选项既出现在命令行中,又出现在配置文件中,则以命令行中的启动选项为准!
2.系统变量
2.1 系统变量简介

2.2 查看系统变量
查看 MySQL 服务器程序支持的系统变量以及它们的当前值:
SHOW VARIABLES (LIKE 匹配的模式);
由于系统变量实在太多了,如果直接使用 SHOW VARIABLES 查看的话,就直接在屏幕上刷屏了,所以通常会使用一个 LIKE 表达式来指定过滤条件:

服务器程序默认存储引擎 InnoDB,客户端允许的最大连接数是 151。
注意:
MySQL服务器实际上允许 max_connections + 1 个客户端连接,额外的 1 个事给超级用户准备的(很显然这是超级用户的一个特权)。
LIKE 表达式中可以使用通配符来进行模糊查询:

这就查出了所有以 default 开头的系统变量的值。
2.3 设置系统变量
2.3.1 通过启动选项设置
大部分系统变量都可以通过在启动服务器时传送启动选项的方式来设置。
-
通过命令行添加启动选项
mysqld --default-storage-engine=MyISAM --max-connections=10 -
通过配置文件添加启动选项
[server] default-storage-engine = MyISAM max-connections = 10
注意:
对于启动选项来说,如果启动选项名由多个单词组成,各个单词之间用短划线(-)或者下划线(_)连接起来都可以;但是对于对应的系统变量来说,各个单词之间必须使用下划线(_)连接。
2.3.2 服务器程序运行过程中设置
对于大部分系统变量来说,它们的值可以在服务器程序运行过程中进行动态修改而无需停止并重启服务器。不过系统变量有作用范围之分:
-
设置不同作用范围的系统变量
多个客户端程序可以同时连接到一个服务器程序,对于同一个系统变量,不同客户端可能会设置不同的值,A 将 default_storage_engine 设置为 InnoDB,B 将 default_storage_engine 设置为 MyISAM。这样各个客户端都私有一份系统变量,这会产生2个问题:
- 有一些系统变量并不是针对单个客户端的,比如允许同时连接到服务器的客户端数量max connections、查询缓存的大小query cache size,这些公有的系统变量让某个客户端私有显然不合适。
- 一个新客户端连接到服务器时,与它对应的系统变量的值该怎么设置。
为了解决这两个问题,设计MySQL的大叔提出了系统变量的作用范围的概念。具体来说,作用范围分为下面两种。
- GLOBAL(全局范围):影响服务器的整体操作。具有 GLOBAL作用范围的系统变量可以称为全面变量。
- SESSION(会话范围):影响某个客户端连接的操作。具有 SESSION作用范围的系统变量可以称为会话变量。
服务器在启动时,会将每个全局变量初始化为其默认值(可以通过命令行或配置文件中指定的选项更改这些默认值)。
服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用相应全局变量的当前值进行初始化(也有一些会话变量不依据相应的全局变量值进行初始化,不过这里不展开唠叨了)。

-
查看不同作用范围的系统变量



-
注意事项

2.3.3 启动选项和系统变量的区别
启动选项是在程序启动时由用户传递的一些参数,而系统变量是影响服务器程序运行行为的变量。它们之间的关系如下:
- 大部分的系统变量都可以当作启动选项传入
- 有些系统变量是在程序运行过程中自动生成的,不可以当作启动选项来设置,比如 character_set_client
- 有些启动选项也不是系统变量,比如 defaults-file
3. 状态变量

4.总结
启动选项可以调整服务器启动后的一些行为。它们可以在命令行中指定,也可以将它们写入配置文件中。
在命令行中指定启动选项时,可以将各个启动选项写到一行中,每一个启动选项名称前面添加 – ,而且各个启动选项之间使用空白字符隔开。有一些启动选项不需要指定选项值,有一些选项需要指定选项值。在命令行中指定有值的启动选项时需要注意,选项名、=、选项值之间不可以有空白字符。一些常用的启动选项具有短形式的选项名,使用短形式选项时在选项名前只加一个短划线 - 前缀。
服务器程序在启动时将会在一些给定的路径下搜索配置文件,不同操作系统的搜索路径是不同的。
配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号 [ ] 扩起来。在配置文件中指定的启动选项不允许添加 – 前缀,并且每行只指定一个选项,而且等号=周围可以有空白字符。我们可以使用 # 来添加注释。
系统变量是服务器程序中维护的一些变量,这些变量影响着服务器的行为。修改系统变量的方式如下。
- 在服务器启动时通过添加相应的启动选项进行修改
- 在运行时使用SET语句修改,下面两种方式都可以:
- SET [GLOBAL|SESSION] 系统变量名=值;
- SET [@@(GLOBAL|SESSION] 系统变量名 =值;
查看系统变量的方式如下所示:
- SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
状态变量是用来显示服务器程序运行状态的,我们可以使用下面的命令来查看,而且只能查看:
- SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
相关文章:
2.MySQL的调控按钮——启动选项和系统变量
2.MySQL的调控按钮——启动选项和系统变量 1.启动选项和配置文件1.1 在命令行上使用选项1.2 配置文件中使用选项1.2.1 配置文件路径1.2.2 配置文件的内容1.2.3 特定 MySQL 版本的专用选项组1.2.4 配置文件的优先级1.2.5 同一个配置文件中多个组的优先级1.2.6 defaults-file 的使…...
故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断
文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断 模型描述 卷积神经网络(convolutional neural network)是具有局部连接、权重共享等特性的深层前馈神经网络,最早主要是用来处理图像信息。 相比于全…...
qt高精度定时器的使用停止线程应用
##线程停止 //线程停止应用 public: explicit WorkerThread(QObject *parent 0) :QThread(parent), m_bStopped(false){qDebug() << "Worker Thread : " << QThread::currentThreadId();}~WorkerThread(){stop();quit();wait();}void stop() {qDebug()…...
Spring Boot Actuator 介绍
Spring Boot Actuator是什么 Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用。 这个模块是一个采集应用内部信息暴露给外部的模块&…...
【MATLAB】安装Psychtoolbox
目录 一、下载Psychtoolbox工具包 1. 一个是这个ZTP文件 2. 分别下载 Subversion 1.7.x command-line client 和 gstreamer.freedesktop.org 二、解压工具包,保存至同一文件 三、安装到matlab 1. 安装psychtoolbox 2. 检查是否安装成功 一、下载Psychtoolbox…...
【Python机器学习】零基础掌握GradientBoostingClassifier集成学习
什么能有效地解决分类问题,特别是在数据复杂、特征多样的情况下? 面对这个问题,许多人可能会想到复杂的神经网络或深度学习方法。然而,有一种称为“梯度提升分类器”(Gradient Boosting Classifier)的算法,以其高准确度、灵活性和易用性赢得了大量用户的青睐。 假设在…...
RFNet模型数据集采集处理流程
文章目录 cityscapes数据集内容如何标注数据得到标签图片 cityscapes数据集内容 训练模型的时候下载了cityscapes里的disparity、gtFine和leftImg8bit。 共5000张图片。2975张训练,500张验证,1525test。每个目录下都有train、test和val的子目录,这些子…...
sql-50练习题6-10
sql练习题6-10题 前言数据库表结构介绍学生表课程表成绩表教师表 0-6 查询"李"姓老师的数量0-7 查询学过"李四"老师授课的同学的信息0-8 查询没学过"李四"老师授课的同学的信息0-9 查询学过编号为"01"并且也学过编号为"02"的…...
【刷题宝典NO.1】
Nim游戏 https://leetcode.cn/problems/nim-game/description/ 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。 你们轮流进行自己的回合, 你作为先手 。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人…...
如何在深度学习领域取得个人的成功
要在深度学习领域取得个人的成功,可以考虑以下建议: 学习深度学习的基础知识:首先,建立坚实的深度学习基础知识是非常重要的。你可以学习深度学习的基本概念、神经网络的原理、常用的深度学习框架(如TensorFlow、PyTor…...
数据结构【DS】B树
m阶B树的核心特性: Q:根节点的子树数范围是多少?关键字数的范围是多少? A:根节点的子树数∈[2, m],关键字数∈[1, m-1]。 Q:其他结点的子树数范围是多少?关键字数范围是多少? Q:对任…...
Chatgpt网页版根据关键词自动批量写原创文章软件【可多开自动登录切换gpt账号】
Chatgpt网页版根据关键词自动批量写原创文章软件介绍: 1、需要放入GPT账号和密码放入在账号库.txt里,可以放入多组账号密码,账号切换轮流使用。 2、可以自定义回答指令,也可多个回答指令随机切换。 3、可以给关键词加双标题&…...
研发效能认证学员作品:快速进行持续集成应用实践丨IDCF
作者:赖嘉明 研发效能(DevOps)工程师认证学员 随着数字化转型的推进及市场竞争的加剧,越来越多的企业也意识到持续集成的重要性。 而持续集成作为一种先进的软件开发实践和工具链,可以帮助企业实现自动化构建、集成和…...
中文编程开发语言工具系统化教程零基础入门篇和初级1专辑课程已经上线,可以进入轻松学编程
中文编程开发语言工具系统化教程零基础入门篇和初级1专辑课程已经上线,可以进入轻松学编程 学习编程捷径:(不论是正在学习编程的大学生,还是IT人士或者是编程爱好者,在学习编程的过程中用正确的学习方法 可以达到事半…...
2024年最新水果音乐制作软件FL Studio21需要多少钱呢?
水果,全称Fruity Loop Studio,简称FL Studio。是一款全能的音乐制作软件,经过二十多年的演化更迭,其各项功能非常的先进。其开创性的Pat\song模式,也为初学者的学习提供了便利。那么水果音乐制作软件FL Studio21需要多…...
当生成式AI遇到业务流程管理,大语言模型正在变革BPM
生成式AI对各领域有很大影响,一个方面在于它改变了很多固有业务的工作流。 工作流(Workflow)是业务流程的一种实现方式,一个业务流程往往包含多个工作流范式以及相关的数据、组织和系统。 因此,提及工作流必然离不开业…...
Kotlin数据流概览
文章目录 一 什么是数据流二 创建数据流三 修改数据流四 从数据流中进行收集五 数据流捕获异常六 在不同 CoroutineContext 中执行七 Jetpack 库中的数据流八 将基于回调的 API 转换为数据流 一 什么是数据流 数据流以协程为基础构建,可提供多个值。从概念上来讲&a…...
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
1、在vscode终端执行 get-ExecutionPolicy ,显示Restricted,说明状态是禁止的。 2、更改状态: set-ExecutionPolicy RemoteSigned 出现需要管理员权限提示,可选择执行 Set-ExecutionPolicy -Scope CurrentUser 出现的ExecutionPolicy参数后输…...
036-第三代软件开发-系统时间设置
第三代软件开发-系统时间设置 文章目录 第三代软件开发-系统时间设置项目介绍系统时间设置演示效果QML 实现小伙伴自创 TumblerQt 家 Tumbler C 端实现 总结一下 关键字: Qt、 Qml、 Time、 时间、 系统 项目介绍 欢迎来到我们的 QML & C 项目!…...
C语言:杨氏矩阵、杨氏三角、单身狗1与单身狗2
下面介绍四道题目和解法 1.杨氏矩阵 算法:右上角计算 题目:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度小于O(N…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...
欢乐熊大话蓝牙知识17:多连接 BLE 怎么设计服务不会乱?分层思维来救场!
多连接 BLE 怎么设计服务不会乱?分层思维来救场! 作者按: 你是不是也遇到过 BLE 多连接时,调试现场像网吧“掉线风暴”? 温度传感器连上了,心率带丢了;一边 OTA 更新,一边通知卡壳。…...
中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点
中科院1区顶刊|IF14:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点 当下,免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入,我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...
