MySQL 服务器简介

news2025/1/4 19:20:28
通常所说的 MySQL 服务器指的是mysqld程序,当运⾏mysqld后对外提供MySQL 服务,这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容,包括:
  • 服务器⽀持的启动选项。可以在命令⾏和配置⽂件中指定这些选项。
  • 服务器系统变量。反映了启动选项的当前状态和值,其中⼀些变量可以在服务器运⾏时修改。
  • 服务器状态变量。这些变量包含了有关运⾏时操作的计数器和统计信息。
  • 服务器如何管理客⼾端连接。
  • 配置和使⽤时区⽀持。
  • 服务器端帮助功能。

服务器配置和默认值

mysqld 有很多选项和系统变量可以在启动时进⾏配置,要查看服务器的默认选项和系统变量值,可以执⾏以下命令:
mysqld --verbose --help
# 查看所有mysqld 选项和可配置的系统变量列表及默认值
root@hcss-ecs-9734:/var/lib/mysql# mysqld --verbose --help
# 内容看起来像这样
abort-slave-event-count 0
allow-suspicious-udfs FALSE
archive ON
auto-increment-increment 1
... 省略
transaction-read-only FALSE
transaction-write-set-extraction XXHASH64
updatable-views-with-limit YES
查看服务器在运⾏时系统变量的值,连接到MySQL并执⾏以下语句:
show variables [like ...];

其中可以跟 like 语句和通配符查找某些具体的系统变量,例如:

查看服务器在运⾏时的⼀些统计和状态指⽰器,连接到MySQL并执⾏以下语句:
show status like [...];
其中可以跟 like 语句和通配符查找某些具体的 统计和状态指⽰器,例如:
系统变量和状态信息也可以使⽤ mysqladmin命令来查看:
mysqladmin variables
mysqladmin extended status
关于服务器的选项、系统变量、状态变量参考以下官⽹列
https://dev.mysql.com/doc/refman/8.0/en/server-option-variable-reference.html

系统变量和选项

当通过mysqld启动数据库服务器时,可以通过选项⽂件或命令⾏中提供选项,但是,在⼤多数情况下,为确保服务器每次运⾏时都使⽤相同的选项,最好的⽅法是在选项⽂件中指定相应的选项,
mysqld从选项⽂件中的 [mysqld] [server] 组(节点)中读取选项内容。
mysqld接受的选项可以通过 mysqld --verbose --help 查看,列表中的有些项⽬是可以在服务器启动时设置的系统变量,系统变量可以在连接MySQL后使⽤ SHOW VARIABLES 语句查看,但有些内容只在 --help 中存在,使⽤ SHOW VARIABLES 时并没有显⽰,这是因为它们只是选项⽽不是系统变量。
注意:选项值可以通过命令⾏和选项⽂件设置,部分系统变量可以通过SET语句动态设置值。
常⽤选项如下:
选项系統变量说明
--character-set-servercharacter-set-server服务器的默认字符集,默认 utf8mb4,如果设置了这个变量,还应该设置 collation_server 来指定字符集的排序规则。
--collation-servercollation_server
服务器的默认排序,默认utf8mb4_0900_ai_ci
--port
port
MySQL服务启动后监听的端⼝号
--datadir
datadir
MySQL服务器的数据⽬录
--default-storage-engine
default_storag
e_engine
表的默认存储引擎
--log-output
log_output
⼀般查询⽇志和慢速查询⽇志输出的⽬的地,值可以是 TABLE , FILE NONE ,可以同时指定多个值, NONE 的优先级最⾼
--general-log
general_log
是否启⽤⼀般查询⽇志。值为 0 (或 OFF )禁⽤⽇志,为 1 (或 ON )来启⽤⽇志。⽇志输出⽬录由 log_output 系统变量控制
--general-log-file
general_log_file
⼀般查询⽇志⽂件的名称。默认值是 host_name .log
--slow-query-log
slow_query_log
是否启⽤慢查询⽇志。值为 0 (或 OFF )禁⽤⽇志,为 1 (或 ON )来启⽤⽇志。⽇志输出⽬录由 log_output 系统变量控制
--slow-query-log-file
slow_query_log_file
慢查询⽇志⽂件的名称。默认值是 host_name -slow.log
--long-query-time
long_query_time
如果查询花费的时间超过这个数秒,服务器将增加Slow_queries状态变量,如果慢速查询⽇志开启,查询将被记录到慢速查询⽇志⽂件中,默认值为10,单位为秒
--log-error
log_error
默认的错误⽇志⽬标。如果⽬标是控制台值为 stderr ,⽬标是⼀个⽂件,值为具体的⽂件名
--log-bin
指定⽤于⼆进制⽇志⽂件的基本名称
--server-id
server_id该变量指定服务器ID,默认为 1
--max-connections
max_connections
允许客⼾端同时连接的最⼤数

使⽤系统变量

  • 当使⽤选项设置⼀个数值的变量时,可以带有后缀 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 语句设置系统变量,需要指定作⽤域(也可以在前⾯加上@@ 修饰符),然后指定系统变量的名称,如下所⽰:

1.设置全局系统变量最⼤连接数为1000:

set global max_connections = 1000;
set @@global.max_connections = 1000;

2.将全局系统变量持久化到 mysqld-auto.cnf ⽂件(同时设置运⾏时值):

# PERSIST 表⽰持久化的同时设置全局变量的值
set persist max_connections = 1000;
set @@persist.max_connections = 1000;

下表为MySQL的配置文件,配置优先级往下逐级递增,其中 mysqld-auto.cnf ⽂件为配置优先级最高的文件,默认不存在该文件,只有使用 set persist 语句时才生成该文件。

⽂件名说明

%WINDIR%\my.ini , %WINDIR%\my.cnf

全局,%WINDIR%是一个环境变量,它代表Windows操作系统的安装目录,通常等于C:\Windows

C:\my.ini , C:\my.cnf

全局

BASEDIR\my.ini , BASEDIR\my.cnf

全局,其中BASEDIR指mysql的安装路径,这是最常用的配置文件

defaults-extra-file

如果存在其他选项⽂件可以通过 --defaults-extra-file 选项指定

%APPDATA%\MySQL\.mylogin.cnf

登录路径选项(仅限客⼾端),%APPDATA% 表⽰应⽤程序数据的⽬录,如C:\Users\[用户名]\AppData\Roaming

DATADIR\mysqld-auto.cnf

系统变量 (仅限服务器)

  mysqld-auto.cnf 文件位于 /var/lib/mysql 路径下,其内容如下
root@hcss-ecs-9734:/var/lib/mysql# cat mysqld-auto.cnf
{"Version": 2, "mysql_dynamic_parse_early_variables": {"max_connections": {"Value": "1000", "Metadata": {"Host": "localhost", "User": "root", "Timestamp": 1735369777874841}}}}

在mysql中也可以看到 max_connections 已经被设置为1000

3.将全局系统变量持久化到 mysqld-auto.cnf ⽂件(不设置运⾏时值):
# PERSIST 表⽰持久化的同时设置全局变量的值
set persist_only max_connections = 1000;
set @@persist_only.max_connections = 1000;
删除持久化的系统变量可以使⽤语句
reset persist if exits system_var_name;
4.设置 Session 系统变量,时区为"+8:00":
set session time_zone = '+8:00';
set @@session.time_zone = '+8:00';
set @@time_zone = '+8:00';
  • 对于数值型的系统变量,⽤带有后缀的值指定时,只适⽤于选项⽅式,⽽不能⽤在 SET ⽅式中;SET ⽅式可以使⽤表达式为系统变量指定值,⽽在选项⽅式中不允许,如下所⽰:
# 选项形式
mysqld --max_allowed_packet=16M # 允许
mysqld --max_allowed_packet=16*1024*1024 # 不允许
# 运⾏时SET形式
set global max_allowed_packet=16M; # 不允许
set global max_allowed_packet=16*1024*1024; # 允许

⽰例:服务器常⽤配置

Linux系统下编辑 /etc/mysql/my.cnf
Windows系统下打开MySQL Server程序安装路径/my.ini,例如我电脑上为D:\mysql\MySQL Server 8.0\my.ini
注意:
  • 编辑前先备份原始⽂件
  • 如果要修改数据⽬录选项建议先停⽌MySQL服务,并把原data⽬录整体复制到新路径,配置完成后重启服务
[mysqld] 节点下添加以下内容
# MySQL 服务节点
[mysqld]
# MySQL 服务启动后监听的端⼝号
port=3306
# 数据⽬录的路径,这⾥演⽰的是windows下的配置,注意分隔符⽤/,如果是\则需要转义为\\.
# 把原data⽬录整体复制到新路径
datadir=D:/database/MySQL/data8.0
# MySQL 服务器的字符集与排序规则
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci 
# 新建表时使⽤的存储引擎,windows下已默认配置
default-storage-engine=INNODB
#注意要多敲一个回车键,即光标要在最后一行配置信息的下一行

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

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

相关文章

分布式版本管理工具——Git关联远程仓库(github+gitee)

Git远程仓库(Github)的基本使用 一、前言二、Git远程仓库介绍三、演示1. 关联github远程仓库2. 关联gitee(码云)远程仓库3. 重命名远程仓库名4. 移除远程仓库 四、结束语 一、前言 古之立大事者,不惟有超世之才&#x…

ZLib库使用详细教程 以及标准ZLib函数和QT自带压缩函数比较

1. 下载Zlib 官网下载地址如下:http://www.zlib.net/ 2. 利用cmake编译zlib 有两种方法可以打开cmake-gui winR输入cmd打开命令行,在命令行中输入cmake-gui可以直接打开应用界面找到你一开始安装cmake的文件夹,在bin子文件夹中双击cmake-…

加载Tokenizer和基础模型的解析及文件介绍:from_pretrained到底加载了什么?

加载Tokenizer和基础模型的解析及文件介绍 在使用Hugging Face的transformers库加载Tokenizer和基础模型时,涉及到许多文件的调用和解析。这篇博客将详细介绍这些文件的功能和它们在加载过程中的作用,同时结合代码片段进行解析。 下图是我本地下载好模…

SpringAI从入门到熟练

学习SpringAI的记录情况 文章目录 前言 因公司需要故而学习SpringAI文档,故将自己所见所想写成文章,供大佬们参考 主要是为什么这么写呢,为何不抽出来呢,还是希望可以用的时候更加方便一点,如果大家有需求可以自行去…

嵌入式系统中C++的基本使用方法

大家好,今天主要给大家分享一下,最近操作C++代码的控制方法。 什么是构造函数?构造函数在对象实例化时被系统自动调用,仅且调用一次。 什么是析构函数?与构造函数相反, 在对象结束其生命周期时系统自动执行析构函数。 第一个:析构函数与构造函数区别 实例代码: #inclu…

【Qt】多元素控件:QListWidget、QTableWidget、QTreeWidget

目录 QListWidget 核心属性: 核心方法: 核心信号: 例子: QListWidgetItem QTableWidget 核心方法: 核心信号 QTableWidgetItem 例子: QTreeWidget 核心方法: 核心信号&#xff1a…

HTML5 标签输入框(Tag Input)详解

HTML5 标签输入框(Tag Input)详解 标签输入框(Tag Input)是一种用户界面元素,允许用户输入多个标签或关键词,通常用于表单、搜索框或内容分类等场景。以下是实现标签输入框的详细讲解。 1. 任务概述 标…

前端加载自己制作的栅格切片服务充当底图

注意mapview的center属性和tilelayer.fullExtent的区别。 前者是设置mapview显示的中心点坐标, const view new MapView({ container: "viewDiv", map: map, center:[100,25] }); 后者是读…

Windows 安装Mysql 8.1.0版本,并迁移数据库

一、下载MySQL压缩包 进入MySQL官网:https://downloads.mysql.com/archives/community/ 下载zip包到本地,然后解压缩。 二、安装MySQL 1、 创建my.ini文件 新创建一个my.ini文件,文件内容如下,记得修改【basedir】和【datadir…

uniapp——微信小程序,从客户端会话选择文件

微信小程序选择文件 文章目录 微信小程序选择文件效果图选择文件返回数据格式 API文档: chooseMessageFile 微信小程序读取文件,请查看 效果图 选择文件 /*** description 从客户端会话选择文件* returns {String} 文件路径*/ const chooseFile () &g…

学习threejs,导入CTM格式的模型

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ColladaLoader DAE模…

1、pycharm、python下载与安装

1、去官网下载pycharm 官网:https://www.jetbrains.com/pycharm/download/?sectionwindows 2、在等待期间,去下载python 进入官网地址:https://www.python.org/downloads/windows/ 3、安装pycharm 桌面会出现快捷方式 4、安装python…

虚拟机Centos下安装Mysql完整过程(图文详解)

目录 一. 准备工作 1. 设置虚拟机静态IP 2. 卸载Mysql 3. 给CentOS添加rpm源 二. 安装MySQL 1. 安装mysql服务 2. 启动mysql服务 3. 开启MySQL开机自启动 4. 查看mysql服务状态 5. 查看mysql初始密码 6. 登录mysql ,修改密码 7. 允许外部访问MySQL数据库…

SwiftUI:多语言实现富文本插值

实现的UI需求: 要求: 英文显示:3068 people have joined this plan today! 中文显示:今日有 3068 人已加入此计划! 实现代码: Text(AttributedString(localized:"**\(payPeoples)** people have joi…

中巨伟业推出高安全高性能32位智能卡内核可编程加密芯片SMEC88SP/ST

1、产品特性  以最高安全等级的智能卡芯片内核为基础,具有极高的软硬件安全性  实现客户关键功能或算法代码下载,用户可以灵活实现自有知识产权的保护  标准 SOP8、SOT23-6 封装形式,器件封装小  标准 I2C 接口,具有接…

部署SenseVoice

依赖 Conda cuda pythor 查看GPU版本-CSDN博客 创建虚拟conda环境 conda create --name deeplearn python3.10 conda activate deeplearn git clone https://github.com/FunAudioLLM/SenseVoice.git cd SenseVoice pip install -r requirements.txt pip install gradio pip …

微信流量主挑战:用户数30!新增文档转化功能,解决docker运行jar包报错SimSun找不到的问题(新纪元5)

哎呀,今天忙到飞起,文章晚点更新啦!不过好消息是,我们的小程序用户终于突破30啦,感谢大家的支持!而且,大家期待已久的文档转化功能明天就要上线啦,目前支持word转pdf,pdf…

操作系统课后题总复习

目录 一、第一章 1.1填空题 1.2单项选择题 1.3多项选择题 1.4判断题 1.5名词解释 1.6简答题 二、第二章 2.1填空题 2.2单项选择题 2.3 多项选择题 2.4判断题 2.5名词解释 2.6简答题 三、第三章 3.1填空题 3.2单项选择题 3.3多项选择题 3.4判断题 3.5名词解…

C语言期末复习笔记(下)

目录 九、指针 1.指针变量的定义和初始化 2.间接寻址符* 3.按值调用和按址调用 4.实例 5.函数指针 6.指针变量和其它类型变量的对比 十、字符串 1.字符串常量 2.字符串的存储 3.字符指针 4.字符串的访问和输入/输出 5.字符串处理函数 (1)str…

保姆级教程Docker部署ClickHouse镜像

目录 1、安装Docker及可视化工具 2、创建挂载目录 3、获取配置文件 4、运行ClickHouse容器 5、Compose运行ClickHouse容器 6、查看ClickHouse运行状态 7、安装包部署 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化…