当前位置: 首页 > article >正文

MySQL体系架构解析(二):MySQL目录与启动配置全解析

MySQL中的目录和文件

bin目录

在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。
在这里插入图片描述

启动MySQL服务器程序

在 UNIX 系统中,用来启动 MySQL 服务器程序的可执行文件有很多,大多在 MySQL 安装目录的 bin 目录下。

  • mysqld
    mysqld 这个可执行文件就代表着 MySOL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。但这个命令不常用。

  • mysqld_safe
    mysqld_safe 是一个启动脚本,它会间接的调用 mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启它。另外,使用 mysqld_safe 启动服务器程序时,它会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志,这样可以方便我们找出发生错误的原因。

  • mysql.server
    mysql.server 也是一个启动脚本,它会间接的调用 mysqld_safe,在调用 mysql.server 时在后边指定start参数就可以启动服务器程序了

    mysql.server start
    

    需要注意的是,这个 mysql.server 文件其实是一个链接文件,它的实际文件是 support-files/mysql.server,所以如果在 bin 目录找不到,到 support-files下去找找,而且如果你愿意的话,自行用ln命令在 bin 创建一个链接。

    另外,我们还可以使用 mysql.server 命令来关闭正在运行的服务器程序,只要把 start 参数换成 stop 就好了:

    mysql.server stop
    
  • mysqld_multi
    其实我们一台计算机上也可以运行多个服务器实例,也就是运行多个 MySQL 服务器进程。 mysql_multi 可执行文件可以对每一个服务器进程的启动或停止进行监控。

客户端程序

在我们成功启动 MysTL 服务器程序后,就可以接着启动客户端程序来连接到这个服务器喽, bin 目录下有许多客户端程序,比方说mysqladmin 、mysqldump 、mysqlcheck 等等。
我们常会用的是可执行文件mysql,通过这个可执行文件可以让我们和服务器程序进程交互,也就是发送请求,接受服务器的处理结果。

  • mysqladmin :执行管理操作的工具,检查服务器配置,当前运行状态,创建、删除数据库,设置新密码。
  • mysqldump 数据库逻辑备份程序
  • mysqlbackup 备份数据表、整个数据库、所有数据库,一般来说 mysqldump 备份、mysql 还原。

启动选项和参数

配置参数文件

当MySQL实例启动时,数据库会先去读取一个配置参数文件,用来寻找数据库的各种文件所在的位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等。默认情况下,MySQL 实例会按照一定的顺序在指定的位置进行读取,用户只需要命令mysql --help grep my.cnf 来寻找即可。
在这里插入图片描述

当然,也可以在启动MySQL时,指定配置文件(非yum安装):
在这里插入图片描述
这时候,就会以启动时指定的配置文件为准。
在这里插入图片描述
MySQL数据库参数文件的作用和Oracle数据库的参数文件极其类似,不同的是,Oracle实例在启动时若找不到参数文件,是不能进行状态(mount)操作的。MySQL稍微有些不同,MySQL实例可以不需要参数文件,这时所有的参数值取决于编译MySQL时指定的默认值和源代码中指定参数的默认值。

MySQL数据库的参数文件是以文本方式进行存储的。可以直接通过一些常用的文本编辑软件进行参数的修改。

参数查看和修改

可以通过命令show variable查看数据库中的所有参数,也可以通过 LIKE 来过滤参数名,前面查找数据库引擎时已经展示过了。从 MySQL5.1 版本开始,还可以通过 information_schema 架构下的 GLOBAL_VARIABLES 视图来进行查找,推荐使用命令。
show variables,使用更为简单,且各版本的 MySQL 数据库都支持。
在这里插入图片描述
参数的具体含义还可参考MySQL官方手册

MySQL数据库中的参数可分为两类:动态(dynamic)参数和静态(static)参数。同时从作用范围又可以分为全局变量和会话变量。

  • 动态参数意味着可以在MySQL实例运行中进行更改,静态参数说明在整个实例生命周期内都不得进行更改,就好象是只读(read only)的。
  • 全局变量(GLOBAL)影响服务器的整体操作;会话变量(SESSION/LOCAL)影响某个客户端连接的操作。

举个例子,用 default_storage_engine 来说明,在服务器启动时会初始化一个名为 default_storage_engine ,作用范围为 GLOBAL 的系统变量。之后每当有一个客户端连接到该服务器时,服务器都会单独为该客户端分配一个名为 default_storage_engine ,作用范围为 SESSION 的系统变量,该作用范围为 SESSION 的系统变量值按照当前作用范围为 GLOBAL 的同名系统变量值进行初始化。

可通过SET命令对动态的参数值进行修改。
在这里插入图片描述
SET的语法如下

-- set [global || session ] system_var_name= expr
-- 或者
-- set [@@global. || @@session.] system_var_name= expr
-- 比如:
set read_buffer_size=524288;
set session read_buffer_size=524288;
set @@global.read_buffer_size=524288;

MySQL所有动态变量的可修改范围,可参考MySQL官方手册的 Dynamic System Variables 相关内容

对于静态变量,若对其进行修改,会得到类似如下错误
在这里插入图片描述

http://www.lryc.cn/news/2403448.html

相关文章:

  • 深度学习在RNA分子动力学中的特征提取与应用指南
  • K8s基础一
  • 2025五大免费变声器推荐!
  • StringRedisTemplete使用
  • SDC命令详解:使用set_min_capacitance命令进行约束
  • 几何引擎对比:OpenCasCade、ACIS、Parasolid和CGM
  • OD 算法题 B卷【猴子吃桃】
  • 汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战
  • Excel-vlookup -多条件匹配,返回指定列处的值
  • Python异步爬虫与代理完美结合
  • 惠普HP Deskjet 9600 打印机信息
  • Hive的Parquet格式优化方法
  • ADI硬件笔试面试题型解析下
  • 服务器租用:高防CDN和加速CDN的区别
  • 吃透 Golang 基础:数据结构之 Map
  • ABP VNext 与 Neo4j:构建基于图数据库的高效关系查询
  • 数论——同余问题全家桶3 __int128和同余方程组
  • leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障
  • 5.Nginx+Tomcat负载均衡群集
  • React项目的状态管理:Redux Toolkit
  • 跨界破局者鲁力:用思辨与创新重塑汽车流通行业标杆
  • Druid连接池实现自定义数据库密码加解密功能详解
  • OS11.【Linux】vim文本编辑器
  • 基于SFC的windows系统损坏修复程序
  • 强化学习基础概念图文版笔记
  • k8s下离线搭建elasticsearch
  • WAF绕过,网络层面后门分析,Windows/linux/数据库提权实验
  • Oracle杀进程注意事项
  • Vue 3 弹出式计算器组件(源码 + 教程)
  • 监测预警系统重塑隧道安全新范式