MySQL随便聊----之MySQL的调控按钮-启动选项和系统变量

news2024/12/23 18:05:47

-------MySQL是怎么运行的

基本介绍

如果你用过手机,你的手机上一定有一个设置的功能,你可以选择设置手机的来电铃声、设置音量大小、设置解锁密码等等。假如没有这些设置功能,我们的生活将置于尴尬的境地,比如在图书馆里无法把手机设置为静音,
无法把流量开关关掉以节省流量,在别人得知解锁密码后无法更改密码~ MySQL 的服务器程序和客户端程序也有很多设置项,比如对于 MySQL 服务器程序,我们可以指定诸如允许同时连入的客户端数量、客户端和服务器通 信方式、表的默认存储引擎、查询缓存的大小吧啦吧啦的设置项。对于 MySQL 客户端程序,我们之前已经见识过了,可以指定需要连接的服务器程序所在主机的主机名或 IP 地址、用户名及密码等信息。
这些设置项一般都有各自的默认值,比方说服务器允许同时连入的客户端的默认数量是 151 ,表的默认存储引擎 InnoDB ,我们可以在程序启动的时候去修改这些默认值,对于这种在程序启动时指定的设置项也称之为启动 选项( startup options ),这些选项控制着程序启动后的行为。在 MySQL 安装目录下的 bin 目录中的各种可执行 文件,不论是服务器相关的程序(比如 mysqld mysqld_safe )还是客户端相关的程序(比如 mysql 、mysqladmin ),在启动的时候基本都可以指定启动参数。
这些启动参数可以放在命令行中指定,也可以把它们 y q ),在启动的时候基本都可以指定启动参数。这些启动参数可以放在命令行中指定,也可以把它们 放在配置文件中指定。下边我们会以 mysqld 为例,来详细唠叨指定启动选项的格式。
需要注意的一点是,我们 现在要唠叨的是设置启动选项的方式,下边出现的启动选项不论大家认不认识,先不用去纠结每个选项具体的作
用是啥,之后我们会对一些重要的启动选项详细唠叨。

常见实战案例:

在命令行上使用选项

 

选项的长形式和短形式

配置文件中使用选项
        在命令行中设置启动选项只对当次启动生效,也就是说如果下一次重启程序的时候我们还想保留这些启动选项的话,还得重复把这些选项写到启动命令行中,这样真的神烦唉!于是设计 MySQL 的大叔们提出一种 配置文件 (也称为 选项文件 )的概念,我们把需要设置的启动选项都写在这个配置文件中,每次启动服务器的时候都从 这个文件里加载相应的启动选项。由于这个配置文件可以长久的保存在计算机的硬盘里,所以只需我们配置一次,以后就都不用显式的把启动选项都写在启动命令行中了, 所以我们推荐使用配置文件的方式来设置启动选

 1)配置文件的路径

MySQL 程序在启动时会寻找多个路径下的配置文件,这些路径有的是固定的,有的是可以在命令行指定的。根据操作系统的不同,配置文件的路径也有所不同,我们分开看一下。
(1) Windows操作系统的配置文件

(2)类Unix操作系统中的配置文件

 

2) 配置文件的内容

与在命令行中指定启动选项不同的是,配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[] 扩起来,像这样

 3)特定MySQL版本的专用选项组

我们可以在选项组的名称后加上特定的 MySQL 版本号,比如对于 [mysqld] 选项组来说,我们可以定义一个[mysqld-5.7] 的选项组,它的含义和 [mysqld] 一样,只不过只有版本号为 5.7 mysqld 程序才能使用这个选 项组中的选项。

 4)配置文件的优先级

5) 同一个配置文件中多个组的优先级

我们说同一个命令可以访问配置文件中的多个组,比如 mysqld 可以访问 [mysqld] [server] 组,如果在同一个配置文件中,比如 ~/.my.cnf ,在这些组里出现了同样的配置项,比如这样:

defaults-file的使用

 命令行和配置文件中启动选项的区别

 系统变量

1)系统变量简介

        MySQL 服务器程序运行过程中会用到许多影响程序行为的变量,它们被称为 MySQL 系统变量,比如允许同时连入的客户端数量用系统变量 max_connections 表示,表的默认存储引擎用系统变量 default_storage_engine 示,查询缓存的大小用系统变量 query_cache_size 表示, MySQL 服务器程序的系统变量有好几百条,我们就不 一一列举了。每个系统变量都有一个默认值,我们可以使用命令行或者配置文件中的选项在启动服务器时改变一 些系统变量的值。大多数的系统变量的值也可以在程序运行过程中修改,而无需停止并重新启动它。

 2)查看系统变量

3) 设置系统变量

1-通过启动项设置
大部分的 系统变量 都可以通过启动服务器时传送启动选项的方式来进行设置。如何填写启动选项我们上边已经花了大篇幅来唠叨了,就是下边两种方式:
1)通过命令行添加启动选项。
比方说我们在启动服务器程序时用这个命令:
mysqld --default-storage-engine=MyISAM --max-connections=10
2)通过配置文件添加启动选项。
        我们可以这样填写配置文件:
        [server]
                default-storage-engine=MyISAM
                max-connections=10
当使用上边两种方式中的任意一种启动服务器程序后,我们再来查看一下系统变量的值:

 

 2-服务器程序运行过程中设置
系统变量 比较牛逼的一点就是, 对于大部分系统变量来说,它们的值可以在服务器程序运行过程中进行动态修改而无需停止并重启服务器 。不过系统变量有作用范围之分,下边详细唠叨下。

 注意事项
并不是所有系统变量都具有 GLOBAL SESSION 的作用范围
        有一些系统变量只具有 GLOBAL 作用范围,比方说 max_connections ,表示服务器程序支持同时最多有多少个客户端程序进行连接。
        有一些系统变量只具有 SESSION 作用范围,比如 insert_id ,表示在对某个包含 AUTO_INCREMENT 列的表进行插入时,该列初始的值。
        有一些系统变量的值既具有 GLOBAL 作用范围,也具有 SESSION 作用范围,比如我们前边用到的 default_storage_engine ,而且其实大部分的系统变量都是这样的,
有些系统变量是只读的,并不能设置值
        比方说 version ,表示当前 MySQL 的版本,我们客户端是不能设置它的值的,只能在 SHOW VARIABLES 语句里查看。

4)启动选项和系统变量的区别

状态变量

 先聊到这,下次再说

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

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

相关文章

react项目发布后,浏览器源码泄露的解决方案

在使用create-react-app时,打包生产环境npm run build,浏览器打开后仍然是可以看到源码的。源码都没上传,为啥线上能看到源码 。 例:线上与服务器 线上与源码 react-scripts build和npm run build 有什么不同 react-scripts bui…

spring高级篇(五)

1、参数解析器 前篇提到过,参数解析器是HandlerAdapters中的组件,用于解析controller层方法中加了注解的参数信息。 有一个controller,方法的参数加上了各种注解: public class Controller {public void test(RequestParam("…

Redux Toolkit 中持久化路由配置数组的实践指南

要将路由配置数组保存到 Redux Toolkit 中并持久化,你可以按照以下步骤进行操作: 创建一个 Slice 来管理路由配置 在 Redux Toolkit 中,我们使用 createSlice 来创建一个 slice,用于管理路由配置的状态。 import { createSlice } from reduxjs/toolkit;const routesSlice c…

【重磅】史上最全企业数字化转型项目流程管理资料大合集下载(2.5G,1429份)

重磅分享,史上最全企业数字化转型项目流程管理资料大合集,共1429份。 一、项目管理实战工具大全(甘特图、表格、项目阶段文档等527份) 二、项目管理流程规范制度(各类流程制度共86份) 三、项目管理模板&…

编译Qt6.5.3LTS版本(Mac/Windows)的mysql驱动(附带编译后的全部文件)

文章目录 0 背景1 编译过程2 福利参考 0 背景 因为项目要用到对MYSQL数据库操作,所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动,但是Qt本身不自带MYSQL驱动,需要自行编译。网上有很多qt之前版本的mysql驱动,但是没有找到qt6…

Python数据结构与算法(1):将序列分解为单独的变量

问题 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 解决方案 任何的序列(或者是可迭代对象)可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构必须与序…

【数据结构7-1-查找-线性-二分法-二叉树-哈希表】

目录 1 查找基本概念2 线性表的查找2.1 顺序查找2.2 二分法查找2.3 分块查找 3 树表的查询3.1 二叉排序树3.1.1 定义3.1.2 二叉树的建立、遍历、查找、增加、删除:3.1.3 代码实现: 3.2 平衡二叉树3.2.1 平横因子3.2.2 不平横树的调整-左旋3.2.3 不平横树…

Unity 数字字符串逗号千分位

使用InputField时处理输入的数字型字符串千分位自动添加逗号,且自动保留两位有效数字 输入:123 输出:123.00 输入:12345 输出:12,345.00 代码非常简单 using UnityEngine; using TMPro;public class …

[机器学习系列]深入解析K-Means聚类算法:理论、实践与优化

目录 一、KMeans (一)Kmeans简介 (二)Kmeans作用和优点 (三)Kmeans局限和缺点 (四)Kmeans步骤 (五)如何选取最佳的K值的三种方法 (六)手肘法和目标函数的变化两种确定K值方法的区别 (七)如何选取第一次迭代的K个类中心------KMeans方法 (八)KMeans的常用参数介绍 二、…

【C语言刷题系列】对数字添加逗号

目录 一、问题描述 二、解题思路 三、源代码 拓展: 个人主页: 倔强的石头的博客 系列专栏 :C语言指南 C语言刷题系列 一、问题描述 二、解题思路 题目的要求,即对于一个较大的整数,每三位数字之间添加…

【go项目01_学习记录day01】

博客系统 1 vscode开发go项目插件推荐1.1 CtrlShiftP(俗称万能键) :打开命令面板。在打开的输入框内,可以输入任何命令。1.2 开发时,我们需要经常查阅 Go 语言官方文档,可惜因国内访问外网不稳定&#xff0…

自己手写了一个大模型RAG项目-05.基于知识库的大模型问答

大家好,我是程序锅。 github上的代码封装程度高,不利于小白学习入门。 常规的大模型RAG框架有langchain等,但是langchain等框架源码理解困难,debug源码上手难度大。 因此,我写了一个人人都能看懂、人人都能修改的大…

03-JAVA设计模式-解析器模式

解释器模式 什么是解析器模式 在Java中,解释器模式(Interpreter Pattern)是一种行为设计模式,它给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子…

unity3d使用3D WebView播放网页中的视频

Unity2021.3.35f1,硬件ESP32-Cam,3D WebView插件 1.新建工程,导入3D WebView for Winfows和3D WebView for Android 2.打开场景Assets\Vuplex\WebView\Demos\Scenes\2_CanvasWebViewDemo 3.修改Canvas的Render Mode为Screen Space-Camera&am…

30秒出服装设计稿,森马用Serverless+AIGC 整“新活”!

“创新项目如何去赋能我们的业务,这件事情在森马很重要。阿里云函数计算帮我们屏蔽掉了想把AI落地到实际业务场景中 GPU 算力资源储备、采购成本、技术门槛等很多难题,从而迅速做出决策,快人一步站在正确的起点,体验新技术对整个服…

『春招实习』2023年3月春招实习求职经历

『春招实习』2023年3月春招实习求职经历 简介货拉拉一面杭州吉里一面传墨科技一面 简介 3月初我便开始陆续投递简历,直观的感受就是【投递的太晚了】,很多公司很早就开始招聘实习生了。 但是自己一直在担心没准备好,所以就想着再准备一天就投…

数据结构单链表”质检员“*2

1.随机链表的逻辑结构复制 原题链接: . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode-cn.com/problems/copy-list-with…

机器学习:深入解析SVM的核心概念(问题与解答篇)【三、核函数】

核函数 **问题一:为什么说是有限维就一定存在高维空间可分呢?**原始空间与特征空间为什么映射到高维空间可以实现可分核函数的作用 **问题二:最终怎么得到函数**从对偶问题到决策函数的步骤:结论 **问题三:为什么说特征…

Kafka 3.x.x 入门到精通(03)——Kafka基础生产消息

Kafka 3.x.x 入门到精通(03)——对标尚硅谷Kafka教程 2. Kafka基础2.1 集群部署2.2 集群启动2.3 创建主题2.4 生产消息2.4.1 生产消息的基本步骤2.4.2 生产消息的基本代码2.4.3 发送消息2.4.3.1 拦截器2.4.3.1.1 增加拦截器类2.4.3.1.2 配置拦截器 2.4.3…

c#数据库:1.c#创建并连接数据库

安装软件:SQL Server Management Studio Management Studio Visual Studio 2022 启动服务: 打开SQL Server Management Studio Management Studio ,连接到服务器(GUANZU是我的计算机名) 新建数据库,随便起个名字叫aq: c#代码: using System; using System.Collections.Gener…