MySQL学习记录 —— 이십일 MySQL服务器配置与管理(1)


mysql的服务端就是mysqld,d就是daemon,守护进程的意思。

配置文件中[mysqld]部分时服务器支持的启动选项。服务器的部分系统变量可以被修改,反映启动选项的当前状态;状态变量不可修改,这些变量包含了有关运行时操作的计数器和统计信息。

1、配置和默认值

查看服务器的默认选项和系统变量值

mysqld --verbose --help

下面是连接到MySQL后才能执行的SQL语句。

服务器运行时系统变量的值:

 SHOW VARIABLES;
 # 具体的某个变量
 SHOW VARIABLES like 'tmpdir';
 # 或者用通配符也可以查询
 SHOW VARIABLES like '%tmp%'; 

查看服务器在运行时的一些统计和状态指示器

SHOW STATUS;

系统变量和状态信息也可以用 mysqladmin命令来查看,以下两个命令都行。

mysqladmin variables
mysqladmin extended-status

这些也可以查看官方文档

MySQL 8.4

官方文档给的表的表头:

在这里插入图片描述

除去name外,依次表示是否支持命令行,是否支持选项文件,是否是系统变量,是否是状态变量,作用域,是否可以动态设置( 即运行时设置 )。

注意:系统变量、状态变量的作用域分为:Global (全局),Session (当前会话或连接),或 两者都支持。全局是指所有客户端都生效,当前会话是指某个客户端生效。

2、系统变量和选项

1、介绍

为确保服务器每次运行时都使用相同的选项,最好的办法是在选项文件指定相应的启动选项。mysqld从选项文件的[mysqld]和[server]部分读取选项。

对于mysqld的启动脚本,官方说明:

在这里插入图片描述

服务器的启动选项最详细的说明就是在官方文档

MySQL 8.4

也可以直接用bash命令查看选项和系统变量

mysqld --verbose --help

启动mysql后下面的命令只显示系统变量

SHOW VARIABLES;

2、常用选项

在这里插入图片描述

latin1字符集不能保存中文。服务器的默认排序中,0900表示unicode的版本9,ai表示口音敏感,ci表示大小写不敏感,另外的看官方文档。MySQL 8.4

在这里插入图片描述

general-log-file通常要指定绝对路径。slow-query-log-file和log-error也是如此。

在这里插入图片描述

max-connections可以理解为MySQL服务器支持的最大并发数。

3、使用系统变量

通过系统变量来改变服务器的一些配置。比如缓冲区,最大数据包大小。

设置系统变量时,破折号和下划线可以互换使用,比如–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。

在这里插入图片描述

系统变量有两个作用域,全局global和会话session,全局影响服务器的整体操作,会话影响各个客户端连接的操作。全局变量的初始值是默认值或者选项指定的值,会话变量的初始值是全局变量的值或者自己设置的值。

大部分系统变量是动态的,在服务器运行时通过SET来调整,需要指定作用域(也可以在前面加上@@修饰符),然后指定系统变量的名称,名称必须使用下划线而不是破折号。

SET GLOBAL max_connections = 1000;
SET @@GLOBAL.max_connections = 1000;

要指定作用域的原因是因为系统变量的作用域不是一样的,有仅全局有仅会话,也有都包含的。另外系统变量名称也必须写对,否则查不到。

将全局系统变量持久化到mysqld-auto.cnf文件,同时设置运行时值:

SET PERSIST max_connections = 1000;
SET @@PERSIST.max_connections = 1000;

不同时设置:

SET PERSIST_ONLY max_connections = 1000;
SET @@PERSIST_ONLY.max_connections = 1000;

Linux和Unix系统读取的选项文件,从上到下,读取顺序从先到后,优先级从低到高。
在这里插入图片描述

最后一行这个文件默认不存在,只能在执行SET PERSIST之后自动生成。

删除持久化的系统变量:

RESET PERSIST IF EXISTS system_var_name;

设置会话的系统变量,时区为"+8:00":

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

default-time-zone则是选项文件中配置的,不是系统变量。

后缀KM这些,不能在SET语句中使用。

SQL语句SHOW VARIABLES查看所有系统,再加上like来找到具体的某个变量,也可以用通配符。

在这里插入图片描述

一部分系统变量是内置的,也有一些需要通过安装服务器插件或组件才可以使用。比如用于审计插件 audit_log 实现了名为 audit_log_policy 的系统变量;错误日志过滤组件 log_filter_dragnet 实现了名为log_error_filter_rules 的系统变量。

8.4版本可以动态设置的系统变量:MySQL 8.4

3、常用服务器配置

在这里插入图片描述

每个部分都要隔几个空行,最后光标停留一个空行上。

[client]

default-character-set=utf8mb4



[mysqld]

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

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

# 新建表时使用的存储引擎
default_storage_endgine=INNODB

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

图中剩余的部分是自带的文件路径。

4、查看状态变量

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

5、MySQL数据目录

MySQL 服务器的管理信息、业务数据、日志文件、磁盘缓冲文件默认存储在数据目录下,是MySQL工作时主要操作的目录,最重要的目录之一。

管理的信息包含用户名和密码,用户的授权,系统变量默认值,维护的库和表。业务数据包含用户创建的库和表以及表中的数据。

数据目录在/var/lib/mysql目录,通过选项datadir修改。

在这里插入图片描述

binlog是二进制日志文件;所有的.pem文件是自动生成的SSL和RSA证书和密钥文件;随后的两个#开头的文件是双写缓冲区文件;ib_buffer_pool缓存了内存池中的数据,ibdata1是表空间相关的文件;接着的两个蓝体字的文件是保存重做日志的日志文件;mysql,performance_schema,sys是系统级别的库;mysql.ibd是系统级别的管理信息;最后两个undo是撤销表空间,保存撤销日志的文件。如果有动态设置的系统变量,还会有一个mysqld-auto.cnf文件来保存系统变量。

结束。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值