前言
在MySQL专题的上篇文章《MySQL基础入门:MySQL的体系架构》中,重点介绍了MySQL的体系结构及官方提供的存储引擎。本篇文章,我们一起揭开MySQL安装目录以及目录下文件的神秘面纱。
MySQL 的版本众多,目前最新版本为 MySQL 8,考虑到实际的情况,MySQL系列文章将以 CentOS 7下MySQL5.7.32 社区版本进行学习交流。
1. MySQL安装目录
进入MySQL的安装目录,我们可以看到如下的目录结构:
主要目录说明:
- /bin:存储可执行文件,主要包含客户端和服务端启动程序,如mysql.exe、mysqld.exe等 /docs:存放一些文档
- /include:用于放置一些头文件,如:mysql.h、mysqld_error.h 等 /lib:存放一些类库文件
- /share:主要存储一些字符集文件
- /support-files:存放一些启动脚本,例如mysql.server、mysqld_multi.server等
2. bin目录解析
在 MysQL 的安装目录下有一个非常重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统中的可执行文件与此的类似。这些可执行文件都是与服务器程序和客户端程序相关的。
bin目录下主要文件:
-
mysqld
mysqld 这个可执行文件就代表着 MySOL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。但这个命令不常用。 -
mysqld_safe
mysqld safe是一个启动脚本,它会间接地调用 mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启它。另外,使用 mysqld_safe 启动服务器程序时,它会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志,这样可以方便我们找出发生错误的原因。 -
mysql.server
mysql.server 也是一个启动脚本,它会间接地调用 mysqld_safe。在调用mysql.server 时指定start或stop参数就可以启动和停止MySQL服务器程序mysql.server start mysql.server stop
需要注意的是,这个mysql.server文件是一个链接文件,它的实际文件是
support-files/mysql.server,所以如果在bin目录找不到,到support-files下去找找,而且如果你愿意的话,自行用ln命令在bin目录下创建一个链接。 -
mysqld_multi
mysqld_multi 使用单一配置文件统一管理多个MySQL多个实例。多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务。而mysql_multi 可执行文件可以对每一个服务器进程的启动或停止进行监控。
3. 数据目录
MySQL的几个存储引擎如InnoDB和MyISAM都是将数据存储到磁盘上,而我们的操作系统是通过文件系统来管理磁盘的,所以可以说这几个存储引擎都是将表和表数据存储在文件系统上的,而我们通过操作文件系统来读写数据。
数据目录用于存储MySQL服务器在运行过程中产生的数据文件,且在服务器程序启动时会从这个目录下加载相关文件。与安装目录不同,安装目录存储了许多控制服务器和客户端程序的命令。
查看数据目录地址:
mysql> show variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| datadir | /www/server/data/ |
+---------------+-------------------+