第2章 MySQL的调控按钮-启动选项和系统变量

devtools/2024/9/20 13:36:51/ 标签: mysql, adb, 数据库

原文链接:

https://relph1119.github.io/mysql-learning-notes/#/mysql/02-MySQL%E7%9A%84%E8%B0%83%E6%8E%A7%E6%8C%89%E9%92%AE-%E5%90%AF%E5%8A%A8%E9%80%89%E9%A1%B9%E5%92%8C%E7%B3%BB%E7%BB%9F%E5%8F%98%E9%87%8F

我们可以发现在日常生活中大多数软件都有自己的默认设置项,对于在程序启动时指定的设置项称之为启动选项

先不用去管mysql中的每个选项具体作用是什么

在命令行上使用选项

-h参数后面紧跟着的服务器的IP地址,意味着客户端和服务器之间需要通过TCP/IP网络进行通信。

  • 如果我们在启动服务器程序的时候禁止各客户端使用TCP/IP网络进行通信,使用以下命令
mysqld --skip-networking

我们可以注意到在命令行中指定启动选项的时候需要在选项名前加上--前缀,然后单词之间使用-或者_来凝结

改变默认的存储引擎:

mysqld --default-storage-engine=MyISAM

启动选项的通用格式:

--启动选项1[=值1] --启动选项2[=值2]

对于不需要值的启动选项,如skip-networking,就不需要指定对应的值

default-storage-engine就需要显示指定相关的值

mysql--help可以看到mysql程序支持的启动选项

mysqld_safe --help可以看到mysql_safe支持的启动选项

查看mysqld支持的选项不一样

mysqld --verbose --help

mysqlmysqld的区别:

mysql时客户端程序,使用mysql命令时,实际上启动了一个MySQL客户端会话

mysqld是MySQL服务器的主要二进制执行文件,负责启动,管理和运行数据库服务

选项的长形式和段形式

我们前面提到的skip-networkingdefault-storage-engine称之为长形式的选项(因为它们很长)

|长形式|短形式|含义| |-|-|-| |--host|-h|主机名| |--user|-u|用户名| |--password|-p|密码| |--port|-P|端口| |--version|-V|版本信息|

使用短形式前面就只需要使用一个-,而不是--

使用短形式可以有间隙,也可以直接用空白字符隔开

配置文件中使用选项

在命令行中设置启动选项只对当次启动有效,如果需要永久修改,

我们需要把设置的启动选项写在配置文件当中

配置文件的类路径(Windows)

MySQL会按照以下路径来寻找配置文件

|路径名|备注| |-|-| |%WINDIR%\my.ini%WINDIR%\my.cnf|| |C:\my.iniC:\my.cnf|| |BASEDIR\my.iniBASEDIR\my.cnf|| |defaults-extra-file|命令行指定的额外配置文件路径| |%APPDATA%\MySQL\.mylogin.cnf|登录路径选项(仅限客户端)|

如果我们在多个配置文件中设置了相同的启动选项,就医最后一个配置文件中的为准

defaults_file的使用:

如果我们不想让MySQL到默认的路径下搜索配置文件,可以在命令行指定default-file选项

mysqld.exe --defaults-file=C:\tmp\myconfig.txt

有些选项只能出现在命令行之中

defaults-extra-file,defaults-file这两种,这个是用来修改参照的配置文件的

前面的东西我们直接修改my.ini就行了,或者直接搜怎么修改配置大概都有

系统变量

mysql服务器程序运行过成中会用到许多影响程序行为的变量,他们被称为MySQL系统变量

允许同时连入的客户端数量用系统变量max_connection表示

类似的还有default_storage_engine

大多数系统变量的值可以在程序运行过程中修改,无需停止并重新修改它

查看系统变量

SHOW VARIABLES [LIKE 匹配的模式]

精准匹配:

模糊匹配:

设置系统变量

通过命令行添加启动选项

或者是配置文件

我试了通过命令行添加启动选项,但是结果并没有改变

一般要去配置文件里面,my.ini直接修改

然后才是最重要的一步,要用管理员身份运行

net stop mysql80
net start mysql80

如果你和我一样启动不了,去计算机管理,点击服务,找到mysql80,右击启动就行,然后会发现,修改成功了

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

因为多个客户端可以同时连接到一个服务器程序,所以对于同一个系统变量,不同的客户端需要具有不同的值,这是很正常的事情

但是每个变量都可以针对单个客户端是不现实而且是没有必要的

例如:

max_connection这是对于服务器而言的,客户端设置是完全不合适的

还有一个问题是设置的这个选项是全局(对服务器而言)的还是部分的(对客户端而言),这也很重要

所以我们提出了作用范围这个概念

  • GLOBAL:全局变量,影响服务器

  • SESSION:会话变量,影响某一个客户端

显然,通过启动选项设置的系统变量的作用范围都是GLOBAL

SET [GLOBAL|SESSION] 系统变量名 = 值

第二种写法:

SET [@@(GLOBAL|SESSION).]var_name = XXX;

如果我们想让后面来的客户端的某个值都变成相同的就是用GLOBAL

//假设修改default_storage_engine
SET GLOBAL default_storage_engine = MyISAM;
SET @@GLOBAL.default_storage_engine = MyISAM;

如果只想对本客户端生效,我感觉我们掌握简单的一种就行,反正都一样

SET SESSION default_storage_engine = MyISAM;
SET default_storage_engine = MyISAM;

如果我们省略了作用范围,默认的作用范围就是SESSION

客户端设置了global的系统变量,并不会对已经连接上的客户端的系统变量产生影响,只会对后面连接的客户端产生影响

并不是所有系统变量都具有GLOBALSESSION的作用范围。

有些系统变量是只读的,并不能设置值。

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

启动选项是程序启动的时候,我们传递的一些参数

系统变量是影响服务器程序运行行为的变量

  • 大部分的系统变量都可以作为启动选项进行传入

  • 有些系统变量是在程序运行过程中自动生成的

  • 有些启动选项不是系统变量

状态变量

我们通过状态变量来了解服务器程序的运行情况

如:

Threads_connected表示当前有多少客户端与服务器建立了连接

状态变量是用来显示服务器程序的运行状况的,所以他们的值只能由服务器程序自己来设置,程序员是不能设置的

不过,状态变量也有GLOBALand SESSION两个作用范围

查看状态变量的语句:

show [global|session] status [like匹配的模式];

同样我们不写明作用范围的话,默认的就是session


http://www.ppmy.cn/devtools/34329.html

相关文章

vs2019 - astyle-extension 扩展插件的编译与使用

文章目录 vs2019 - astyle-extension 扩展插件的编译与使用概述笔记编译有警告run_vs2019.bat检查C#组件编译工程卸载旧版插件安装新版插件确认astyle-extension插件没有被VS2019禁止给astyle-extension插件在VS2019工具栏上加个按钮插件配置astyle-extension 插件的astyle的版…

论文阅读_使用有向无环图实现流程工程_AgentKit

英文名称: AgentKit: Flow Engineering with Graphs, not Coding 中文名称: AgentKit:使用图而非编码进行流程工程 链接: https://arxiv.org/pdf/2404.11483.pdf 代码: https://github.com/holmeswww/AgentKit 作者: Yue Wu, Yewen Fan, So Yeon Min, Shrimai Prabh…

c语言排序算法之五(插入排序)

前言 以下内容是被验证可以有效理解插入排序,代码也较容易理解。如果你发现还有很多需要增加的,欢迎留言。 为什么要单独写排序算法这一系列,看过一些贴子普遍篇幅较长。看完还依旧云里雾里,难以直观理解原理及整个过程。代码永…

【Osek网络管理测试】[TG1_TC7]tError

🙋‍♂️ 【Osek网络管理测试】系列💁‍♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果 1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 测试tErrore时间参数是否正确 本处规定tError范围在[950…

「PHP系列」PHP MySQL 简介及运用

文章目录 一、PHP MySQL 简介二、MySQL安装三、相关链接 一、PHP MySQL 简介 PHP MySQL是一个结合了PHP和MySQL的组合,用于在Web应用程序中处理数据库操作。 MySQL: 定义:MySQL是一个流行的开源关系型数据库管理系统(RDBMS&…

微信IDE vscode插件:获取插件位置,并打开文件

背景 有没有觉得在微信开发工具里面添加一些插件可以很方便。因为微信IDE的编辑本身是依赖vscode开发,所以编写vscode插件自然可以在微信IDE使用。这样做好处就是可以满足到自己一些开发使用习惯。 1.获取插件的目录位置 那么如何获取插件里面的目录,…

Spring IoCDI

一.引言 1.什么是Spring 前面我们说Spring是一个开源框架,它让我们的开发更为简单,它支持广泛的应用场景,有活跃庞大的社区。但这样说还是很抽象。今天我们就对他进行具象的描述 一句话说,Spring就是包含了众多工具的IoC容器。…

通用代码审查清单

通用代码审查清单是一个确保代码质量、可读性、可维护性和遵循最佳实践的重要工具。 以下是一个汇总的审查清单,结合了多个来源的信息,适用于多种编程语言和项目: 功能实现 • 代码是否实现了设计文档或需求规格说明中规定的所有功能&…

Dragonfly 拓扑的路由算法

Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估 Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而文章中也提到了 针对 Dragonfly 拓扑的路由算法。本文对…

还有谁……想知道“线下与线上布局之间的本质区别”

还有谁……想知道 线下与线上布局之间的本质区别 hello,亲爱的你们好.… 我是你们的好朋友,正博,今天是非常特殊的一天,给每一位读者准备了一份特殊的神秘礼物…… 在分享【特殊礼物】之前,请允许我分享一下《线下营销与线上销售的9大核心差异》…… 1、注意力; 2、销…

探索设计模式的魅力:分布式模式让业务更高效、更安全、更稳定

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索分布式模式之旅✨ 在数字化时代,企业面临着前所未有的挑战和机遇。…

(论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization

目录 摘要 一、简介 1.1 State-of-the-Art 1.2 贡献和大纲 二、定义 三、相关工作 四、问题分析 4.1 分析 4.2 算法设计影响 五、通用算法 5.1 算法概述 5.2 完备性证明 六、分段线性代价函数算法 6.1 数据结构 6.2 基本运算实现 6.3 复杂度分析 七、实验评估 …

原来spring也可以AI

最近大模型是相当的火,尤其是在自然语言处理(NLP)、图像识别、语音识别等领域的应用,那对于工程同学来说应该如何接住这波破天的富贵呢? 想啥来啥,前段时间LangChain给我们整了一套钢铁战甲,让…

四工位自动攻丝机自动控制

/**************进料检测********************/ /***缺料无限次循环 手动退出 超时报警*******/ void check_Pon() { zstatus0; //缺料报警计数器归零 Signauto1; //…

kubectl_进阶_安全

安全 在前面的学习中,我们知道对于资源对象的操作都是通过 APIServer 进行的,那么集群是怎样知道我们的请求就是合法的请求呢? 这就涉及到k8s的安全相关的知识了。 1. API对象 Kubernetes有一个很基本的特性就是它的所有资源对象都是模型…

如何将 redis 快速部署为 docker 容器?

部署 Redis 作为 Docker 容器是一种快速、灵活且可重复使用的方式,特别适合开发、测试和部署环境。本文将详细介绍如何将 Redis 部署为 Docker 容器,包括 Docker 安装、Redis 容器配置、数据持久化、网络设置等方面。 步骤 1:安装 Docker 首…

解决网络ping不通问题

网络ping不通可能有多种原因,以下是一些常见的解决方法: 1. 检查IP地址和域名:确保你使用的是正确的IP地址或者域名来ping目标设备。如果IP地址或者域名错误,ping请求将无法到达目标设备。 2. 检查网络连接:首先确保…

Ubuntu CMake升级

在Ubuntu中升级CMake,可以使用以下步骤: 打开终端。 首先,需要添加官方的CMake APT仓库。可以使用以下命令添加: sudo apt-get update sudo apt-get -y install software-properties-common lsb-release sudo apt-add-repository…

同向双指针(滑动窗口)算法

209. 长度最小的子数组 这里的更新结果就题来定 class Solution {public int minSubArrayLen(int target, int[] nums) {int sum 0;int len 0;int f 0;for(int left 0, right 0; right < nums.length;){//求和sum nums[right];while(sum > target){//lenint t ri…

vs 2022 Xamarin 生成 Android apk

再保存&#xff0c;如果没有生成apk就重启软件 再试一次