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 服务器程序可以指定:
    1. 允许同时连入的客户端数量(默认151)
    2. 客户端和服务器的通信方式
    3. 表的默认存储引擎(默认InnoDB)
    4. 查询缓存大小等信息
  • 对于 MySQL 客户端程序可以指定:
    1. 需要连接的服务器程序所在主机的主机名或 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_safemysql.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 服务器程序运行过程中设置

对于大部分系统变量来说,它们的值可以在服务器程序运行过程中进行动态修改而无需停止并重启服务器。不过系统变量有作用范围之分:

  1. 设置不同作用范围的系统变量

    多个客户端程序可以同时连接到一个服务器程序,对于同一个系统变量,不同客户端可能会设置不同的值,A 将 default_storage_engine 设置为 InnoDB,B 将 default_storage_engine 设置为 MyISAM。这样各个客户端都私有一份系统变量,这会产生2个问题:

    • 有一些系统变量并不是针对单个客户端的,比如允许同时连接到服务器的客户端数量max connections、查询缓存的大小query cache size,这些公有的系统变量让某个客户端私有显然不合适。
    • 一个新客户端连接到服务器时,与它对应的系统变量的值该怎么设置。

    为了解决这两个问题,设计MySQL的大叔提出了系统变量的作用范围的概念。具体来说,作用范围分为下面两种。

    • GLOBAL(全局范围):影响服务器的整体操作。具有 GLOBAL作用范围的系统变量可以称为全面变量。
    • SESSION(会话范围):影响某个客户端连接的操作。具有 SESSION作用范围的系统变量可以称为会话变量。

    服务器在启动时,会将每个全局变量初始化为其默认值(可以通过命令行或配置文件中指定的选项更改这些默认值)。

    服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用相应全局变量的当前值进行初始化(也有一些会话变量不依据相应的全局变量值进行初始化,不过这里不展开唠叨了)。

    在这里插入图片描述

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

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  3. 注意事项

    在这里插入图片描述

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 匹配的模式];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/108382.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期神经网络多输入单输出回归预测

回归预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期神经网络多输入单输出回归预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-BiLSTM贝叶斯优化双向长…

mysql源码安装

Linux环境 1、mysql下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载参考: 2、把下载的 MySQL 压缩包上传到 Linux 服务器 3、解压mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.39-linux-glibc2.12-x86…

【Linux】解决缓存锁问题:无法获得锁 /var/lib/dpkg/lock-frontend

今天在运行apt-get update更新软件包后,突然发现安装新的软件出现了这个报错:正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1855(unattended-upgr)持有。如图。 这个错误通常是由于其他进程正在…

Word批量删除文档属性和个人信息方法图解

投标文件中设计敏感信息,在投标前必须删除,Word批量删除文档属性和个人信息方法图解: 右键word文件属性--详细信息,可以查看如下信息; 删除上述信息的办法: 1.打开word文件---文件 2.检查文档、检查文档 检…

竞赛 深度学习卫星遥感图像检测与识别 -opencv python 目标检测

文章目录 0 前言1 课题背景2 实现效果3 Yolov5算法4 数据处理和训练5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **深度学习卫星遥感图像检测与识别 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐…

Linux操作系统 - 从概念上认识进程

目录 前置知识 冯诺依曼和现代计算机结构 操作系统的理解 进程的概念 进程和PCB 查看进程信息的指令 - ps 进程的一些特性 进程标识符 - PID 进程状态 进程状态的概念 Linux下的进程状态 父子进程 子进程的创建 - fork 僵尸进程 孤儿进程 进程切换 CPU上下文切…

分享54个ASP.NET源码总有一个是你想要的

分享54个ASP.NET源码总有一个是你想要的 链接:https://pan.baidu.com/s/1khPzxtOFP0wUHpg7TBDitg?pwd8888 提取码:8888 项目名称 (ASP.Net)基于三层架构的企业信息管理系统 asp .net mvc编写的房产管理系统 asp.net core mvc 病人管理后台 asp.ne…

【表面缺陷检测】钢轨表面缺陷检测数据集介绍(2类,含xml标签文件)

一、介绍 钢轨表面缺陷检测是指通过使用各种技术手段和设备,对钢轨表面进行检查和测量,以确定是否存在裂纹、掉块、剥离、锈蚀等缺陷的过程。这些缺陷可能会对铁路运输的安全和稳定性产生影响,因此及时进行检测和修复非常重要。钢轨表面缺陷…

pytorch-fastrcnn识别王者荣耀敌方英雄血条

文章目录 前言效果如下实现训练数据获得训练数据和测试数据yaml文件训练py画框文件的修改py测试py 前言 最近看王者荣耀视频看到了一个别人提供的一个百里自动设计解决方案,使用一个外设放在百里的二技能上,然后拖动外设在屏幕上滑动,当外设检测到有敌方英雄时外设自动松开百里…

05、SpringCloud -- 秒杀按钮、秒杀请求流程(各种请求到后台的判断、减库存、下单数据和次数保存)

目录 秒杀按钮代码实现:vue的JS实现:秒杀请求需求:代码前端后端Seckill-apidomainSeckill-serverWebConfig1、秒杀请求判断controller2、重复下单判断MapperService 接口Impl 实现类controller3、库存判断4、秒杀涉及到的操作_01、减库存_02、创建订单对象并保存_03、用户下…

buuctf_练[CSAWQual 2019]Web_Unagi

[CSAWQual 2019]Web_Unagi 文章目录 [CSAWQual 2019]Web_Unagi掌握知识解题思路关键payload 掌握知识 ​ XXE漏洞利用,xml文件转换编码绕过WAF(UTF-8 --> UTF-16),xml文件格式的书写 ​ 再遇到上传xml文件被拦截,就尝试修改编码再上传&a…

openpnp - 汇川伺服和冰沙主板的连接

文章目录 openpnp - 汇川伺服和冰沙主板的连接概述笔记X轴伺服X轴步进电机X伺服 - 电源进线X轴伺服 - 步进控制线X轴步进电机 - 步进控制线X轴伺服 - 编码器反馈线X轴步进电机 - 编码器反馈线X伺服 - 主板端来的控制信号线主板端 - 主板端来的控制信号线X伺服控制信号线 - 主板…

驱动作业10.28

驱动程序 #include <linux/init.h> #include <linux/module.h> #include<linux/of.h> #include<linux/of_gpio.h> #include<linux/gpio.h> #include<linux/timer.h> #include <linux/fs.h> #include <linux/io.h> #include &…

R-FCN: Object Detection via Region-based Fully Convolutional Networks(2016.6)

文章目录 AbstractIntroduction当前最先进目标检测存在的问题针对上述问题&#xff0c;我们提出... Our approachOverviewBackbone architecturePosition-sensitive score maps & Position-sensitive RoI pooling Related WorkExperimentsConclusion 原文链接 源代码 Abstr…

【RTOS学习】互斥管理 | 调试 | 信息统计

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 互斥管理 | 调试 | 信息统计 &#x1f349;互斥管理&#x1f330;屏蔽中断&#x1f330;暂停调度器…

Android问题笔记四十二:signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) 的解决方法

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

阿里云服务器—ECS快速入门

这里对标阿里云的课程&#xff0c;一步步学习&#xff0c;链接在下面&#xff0c;学习完考试及格即可获取阿里云开发认证和领取证书&#xff0c;大家可以看看这个&#xff0c;这里我当作笔记&#xff0c;记一下提升印象&#xff01; 内容很长&#xff0c;请耐心看完&#xff0…

论文-分布式-并发控制-并发控制问题的解决方案

目录 参考文献 问题 解法与证明 易读版本 参考文献 Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control&#xff0c;引出并发系统下的互斥(mutual exclusion)问题&#xff0c;自此开辟了分布式计算领域Dijkstra在文中给出了基于共享存储原子…

论文阅读——ELECTRA

论文下载&#xff1a;https://openreview.net/pdf?idr1xMH1BtvB 另一篇分析文章&#xff1a;ELECTRA 详解 - 知乎 一、概述 对BERT的token mask 做了改进。结合了GAN生成对抗模型的思路&#xff0c;但是和GAN不同。 不是对选择的token直接用mask替代&#xff0c;而是替换为…

Maven配置阿里云中央仓库settings.xml

Maven配置阿里云settings.xml 前言一、阿里云settings.xml二、使用步骤1.任意目录创建settings.xml2.使用阿里云仓库 总结 前言 国内网络从maven中央仓库下载文件通常是比较慢的&#xff0c;所以建议配置阿里云代理镜像以提高jar包下载速度&#xff0c;IDEA中我们需要配置自己…