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

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.xdnf.cn/news/896977.html

相关文章:

  • React从基础入门到高级实战:React 实战项目 - 项目三:实时聊天应用
  • Linux容器篇、第二章_01Ubuntu22 环境下 KubeSphere 容器平台高可用搭建全流程
  • 悲观锁和乐观锁
  • 数据库SQLite基础
  • 《完全背包》题集
  • 天机学堂(学习计划和进度)
  • TDengine 开发指南——无模式写入
  • vue-20(Vuex 状态管理的最佳实践)
  • 如何配置nginx解决前端跨域请求问题
  • Nuxt.js 中的路由配置详解
  • (转)什么是DockerCompose?它有什么作用?
  • Ubuntu 基于sdl 音频学习的基础代码
  • 市面上哪款AI开源软件做ppt最好?
  • wordpress+woocommerce电商平台搭建方案的优势分析
  • 1.3 古典概型和几何概型
  • MySQL安装与配置详细讲解
  • vue3报错:SyntaxError: Identifier ‘__vite__injectQuery‘ has already been declared
  • PostgreSQL 技术峰会,聚焦国产生态与前沿技术
  • CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
  • 【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
  • vue3:十五、管理员管理-页面搭建
  • Vue:Form正则校验
  • 数据库系统学习
  • 高效Excel合并拆分软件
  • Excel 发现此工作表中有一处或多处公式引用错误。请检查公式中的单元格引用、区域名称、已定义名称以及到其他工作簿的链接是否均正确无误。弹窗
  • Excel 模拟分析之单变量求解简单应用
  • 沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
  • 【Go语言基础【5】】Go module概述:项目与依赖管理
  • go语言学习 第6章:错误处理
  • pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决