【MySQL】服务器配置和管理

news2024/12/28 20:21:03

本文使用的MySQL版本是8.0

MySQL服务器介绍

MySQL服务器通常说的是mysqld程序。

mysqld 是 MySQL 数据库服务器的核心程序,负责处理客户端的请求、管理数据库和执行数据库操作。管理员可以通过配置文件和各种工具来管理和监控 mysqld 服务器的运行

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 7 MySQL Server Administration

 本文将介绍下面三个内容:

服务器启动选项:可以在命令行和配置文件中指定,用于配置服务器的行为和特性。

服务器系统变量:反映了启动选项的当前状态和值,其中一些变量可以在服务器运行时修改。

服务器状态变量:包含了关于运行时操作的计数器和统计信息。

选项

 每次启动mysqld的时候,可以通过命令行或者文件来提供选项,建议使用文件的方式来指定选项,这样就能确保每次运行时都是使用相同的选项。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 7.1.4 Server Option, System Variable, and Status Variable Reference

如果mysqld启动时如果没有用--defaults-file 来指定配置文件,那么就是按照表格由上至下依次查找配置文件。后面的配置文件会把前面的覆盖掉(如果有相同的配置)。

使用文件的方式读取选项时,mysqld是从 [mysqld] 和 [server] 这两个节点中读取选项的。

查看选项

mysqld --verbose --help

使用该命令,会把mysqld的选项和系统变量列出来。一般不使用这个命令,因为它把选项和系统变量都输出了,我们可以在官网查看这些选项。

 

 常用选项

使用选项

在指定的配置文件中修改或添加即可

系统变量

反映了启动选项的当前状态和值,其中一些变量可以在服务器运行时修改。

可以说,系统变量就是选项的表现,

查看系统变量

查看全部

# 在mysql命令行下
show variables;

或者用mysqladmin程序

mysqladmin variables

查看模糊 

show variables like "%xxx%";

查看指定

查看全局或者会话

show [global | session] variables;

下面将会讲到全局变量或者局部变量 

使用系统变量

  • 设置系统变量的语法与命令选项的语法相同,指定变量名称时,破折号和下划线可以互换使用。例如,--general_log=ON 和 --general-log=ON 是等价的。
  • 当使用选项设置一个数值的变量时,可以带有后缀 K、M 或 G(大小写不限)表示 1024、1024^2 或 1024^3;从MySQL 8.0.14 开始,后缀也可以用 T、P 和 E 来表示 1024^4、1024^5 或 1024^6。

示例:为服务器指定 256 KB 的排序缓冲区大小和 1 GB 的最大数据包大小

在命令行的指定:

mysqld --sort-buffer-size=256K

--max-allowed-packet=1G

在选项文件中指定:

[mysqld]
sort_buffer_size=256k
max_allowed_packet=1g

  • 系统变量有两个作用域,分别是 Global(全局)和 Session(会话),Global 全局变量影响服务器的整体操作,Session 会话变量影响各个客户端连接的操作。给定的系统变量可以同时具有全局值和会话值,它们的关系如下: 

服务器启动时,会将每个全局变量初始化并设置默认值,具体的值可以通过命令行或选项文件更改。
服务器为每个客户端维护一组 Session 变量,在客户端连接时使用相应全局变量的当前值进行初始化。

范围:全局变量影响整个 MySQL 服务器实例,而会话变量只对当前连接有效。
生命周期:全局变量在服务器启动时初始化,持续存在于服务器的整个生命周期,而会话变量在客户端连接期间存在,当连接关闭时消失。
作用对象:全局变量影响所有连接和操作,而会话变量只影响当前连接。
设置方式:全局变量可以在配置文件或启动命令中设置,会话变量可以通过 SET 语句在连接时动态设置。

  • 大部分系统变量是动态的,在服务器运行时可以通过 SET 语句动态更改,并且无需停止和重新启动服务器。在服务器运行时,使用 SET 语句设置系统变量,需要指定作用域(也可以在前面加上 @@ 修饰符),然后指定系统变量的名称,名称必须使用下划线而不是破折号,如下所示: 

设置全局系统变量最大连接数为1000:
mysql> SET GLOBAL max_connections = 1000;
mysql> SET @@GLOBAL.max_connections = 1000;


将全局系统变量持久化到 mysqld-auto.cnf 文件(同时设置运行时值):
mysql> SET PERSIST max_connections = 1000;
mysql> SET @@PERSIST.max_connections = 1000;


将全局系统变量持久化到 mysqld-auto.cnf 文件(不设置运行时值):
mysql> SET PERSIST_ONLY max_connections = 1000;
mysql> SET @@PERSIST_ONLY.max_connections = 1000;


删除持久化的系统变量可以使用语句:

RESET PERSIST IF EXISTS system_var_name;


设置 Session 系统变量,时区为 "+8:00":

mysql> SET SESSION time_zone='+8:00';
mysql> SET @@SESSION.time_zone='+8:00';
mysql> SET @@time_zone='+8:00';

  • 对于数值型的系统变量,用带有后缀的值指定时,只适用于选项方式,而不能用在 SET 方式中;SET 方式可以使用表达式为系统变量指定值,而在选项方式中不允许,如下所示:

选项形式:
root@guangchen-vm:~# mysqld --max_allowed_packet=16M # 允许
root@guangchen-vm:~# mysqld --max_allowed_packet=16*1024*1024 # 不允许
运行时 SET 形式:
mysql> SET GLOBAL max_allowed_packet=16M; # 不允许
mysql> SET GLOBAL max_allowed_packet=16*1024*1024; # 允许

  • 在设置全局变量时需要指定 GLOBAL 关键字的原因是为了防止出现以下问题:

如果要删除的 SESSION 变量与 GLOBAL 变量名相同,那么具有修改全局变量权限的客户端可能会意外地更改 GLOBAL 变量,而不仅仅是只修改 SESSION 变量。
如果已经有一个 SESSION 变量而且与 GLOBAL 变量同名,那么本意是要修改 GLOBAL 变量,可能只是修改了 SESSION 变量的值。
所以没有明确指定 GLOBAL 和 SESSION 时,对于当前客户端来说 SESSION 的优先级更高。

状态变量

MySQL 中的状态变量是用来跟踪服务器状态和性能指标的变量。它们提供了有关 MySQL 服务器运行时状态的信息,可以帮助管理员进行监视、调优和故障排除。状态变量包括了各种性能指标、缓存使用情况、连接和查询统计等信息。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 7.1.10 Server Status Variables

查看状态变量

SHOW [GLOBAL | SESSION] STATUS [like status_name];

与查看系统变量基本一致。

常见状态标识

常见配置

# MySQL 服务节点
[mysqld]

# MySQL 服务启动后监听的端口号
port=3306

# 数据目录的路径,这里演示的是windows下的配置,注意分隔符用/,如果是\则需要转义为\\.
# 把原data目录整体复制到新路径
# datadir=写具体的实现目录

# MySQL 服务器的字符集与排序规则
character_set_server=utf8mb4
collation_server=utf8mb4_general_ci 

# 新建表时使用的存储引擎,windows下已默认配置
default_storage_engine=INNODB

# 时区
default-time-zone='+8:00'

# ################# 日志相关 #################
#日志文件
log_output=FILE,TABLE
#开启一般查询日志   
general_log=1     
#指定自定义的文件名   
general_log_file=/var/log/mysql/general.log 

#开启慢查询日志
slow_query_log=1     
#指定自定义的文件名
slow_query_log_file=/var/log/mysql/slow_query.log 

#错误日志的路径
log-error=/var/log/mysql/error.log

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

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

相关文章

Tensorflow入门实战 P03-天气识别

目录 1、完整代码 2、运行结果 2.1 查看20张图片 2.2 程序运行 2.3 运行结果 3、小结 ① 代码运行过程中有报错: ② 修改代码如下: ③ 分析原因: 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者&…

屏幕空间环境光遮蔽(SSAO)在AI绘画中的作用

引言: 随着人工智能技术的不断发展,AI绘画已经逐渐走进了人们的视野。作为一种新兴的艺术形式,AI绘画通过算法和模型来生成具有艺术感的图像。在这个过程中,屏幕空间环境光遮蔽(SSAO)技术发挥着重要作用。本…

英伟达的GPU(4)

更第四篇,上周有点私事,恢复更新 上次的文章 英伟达的GPU(3) (qq.com) 书接前文,我们上章说要更新GPU的内存机制,本次就讲点这个 先做个定义,我们说内存(显存),也分物理内存&#…

【目标跟踪网络训练 Market-1501 数据集】DeepSort 训练自己的跟踪网络模型

前言 Deepsort之所以可以大量避免IDSwitch,是因为Deepsort算法中特征提取网络可以将目标检测框中的特征提取出来并保存,在目标被遮挡后又从新出现后,利用前后的特征对比可以将遮挡的后又出现的目标和遮挡之前的追踪的目标重新找到&#xff0…

【BUG】已解决:ModuleNotFoundError: No module named ‘transformers‘

已解决:ModuleNotFoundError: No module named ‘transformers‘ 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司…

360数字安全:2024年4月勒索软件流行态势分析报告

勒索软件传播至今,360 反勒索服务已累计接收到数万勒索软件感染求助。随着新型勒索软件的快速蔓延,企业数据泄露风险不断上升,勒索金额在数百万到近亿美元的勒索案件不断出现。勒索软件给企业和个人带来的影响范围越来越广,危害性…

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…

插卡式仪器模块:数字万用表模块(插卡式)

• 6 位数字表显示 • 24 位分辨率 • 250 KSPS 采样率 • 电源和数字 I/O 均采用隔离抗噪技术 • 电压、电流、电阻、电感、电容的高精度测量 • 二极管/三极管测试 通道122输入 阻抗 电压10 MΩHigh-Z, 10 MΩ电流10 Ω50 mΩ / 2 Ω / 2 KΩ输入范围电压 5 V0–60 V电流…

钉钉统一授权登录第三方网站

开发流程 配置回调域名。 进入已创建的应用详情页,在基础信息页面可以查看到应用的SuiteKey/SuiteSecret(第三方企业应用)或AppKey/AppSecret(企业内部应用)。 在应用详情页,然后单击钉钉登录与分享,添加应用回调的URL,以http或…

一文学习yolov5 实例分割:从训练到部署

一文学习yolov5 实例分割:从训练到部署 1.模型介绍1.1 YOLOv5结构1.2 YOLOv5 推理时间 2.构建数据集2.1 使用labelme标注数据集2.2 生成coco格式label2.3 coco格式转yolo格式 3.训练3.1 整理数据集3.2 修改配置文件3.3 执行代码进行训练 4.使用OpenCV进行c部署参考文…

安全专业的硬件远控方案 设备无网也能远程运维

在很多行业中,企业的运维工作不仅仅局限在可以联网的IT设备,不能连接外网的特种设备也需要专业的远程运维手段。 这种特种设备在能源、医疗等行业尤其常见,那么我们究竟如何通过远程控制,对这些无网设备实施远程运维,…

单灯双控开关原理

什么是单灯双控?顾名思义,指的是一个灯具可以通过两个不同的开关或控制器进行控制。 例如客厅的主灯可能会设置成单灯双控,一个开关位于门口,另一个位于房间内的另一侧,这样无论你是从门口进入还是从房间内出来&#x…

Java数据结构准备工作---常用类

文章目录 前言1.包装类1.1.包装类基本知识1.2.包装类的用途1.3.装箱和拆箱1.3.1.装箱:1.3.2.拆箱 1.4 包装类的缓存问题 2.时间处理类2.1.Date 时间类(java.util.Date)2.2.DateFormat 类和 SimpleDateFormat 类2.3.Calendar 日历类 3.其他常用类3.1.Math类3.2.Rando…

(论文翻译)Coordinate Attention for Efficient Mobile Network Design(坐标注意力 CVPR2021)

Coordinate Attention for Efficient Mobile Network Design(CVPR2021) 文章目录 Coordinate Attention for Efficient Mobile Network Design(CVPR2021)摘要1.引言2.相关工作3.方法:Coordinate Attention3.1.Revisit …

(二)JSX基础

什么是JSX 概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写UI模板的方式。 优势:1.HTML的声明式模版方法;2.JS的可编程能力 JSX的本质 JSX并不是标准…

RabbitMQ-topic exchange使用方法

RabbitMQ-默认读、写方式介绍 RabbitMQ-发布/订阅模式 RabbitMQ-直连交换机(direct)使用方法 目录 1、概述 2、topic交换机使用方法 2.1 适用场景 2.2 解决方案 3、代码实现 3.1 源代码实现 3.2 运行记录 4、小结 1、概述 topic 交换机是比直连交换机功能更加强大的…

强!推荐一款开源接口自动化测试平台:AutoMeter-API !

在当今软件开发的快速迭代中,接口自动化测试已成为确保代码质量和服务稳定性的关键步骤。 随着微服务架构和分布式系统的广泛应用,对接口自动化测试平台的需求也日益增长。 今天,我将为大家推荐一款强大的开源接口自动化测试平台: AutoMete…

备战 清华大学 上机编程考试-冲刺前50%,倒数第5天

T1:多项式求和 小K最近刚刚习得了一种非常酷炫的多项式求和技巧,可以对某几类特殊的多项式进行运算。非常不幸的是,小K发现老师在布置作业时抄错了数据,导致一道题并不能用刚学的方法来解,于是希望你能帮忙写一个程序…

SpringBoot+Vue体育馆管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 学生管理员 功能截图

计算机网络 期末复习(谢希仁版本)第4章

路由器:查找转发表,转发分组。 IP网的意义:当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络异构细节。如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就…