1. MySQL 的 RPM 安装通常分为不同的包,包括 Server、Common、Client、Devel、Libs、Libscompat、Test、Source,请写出上述每个包的功能。
Server:MySQL 服务主程序,含 mysqld 进程。
Common:公共配置、字符集等共享基础文件。
Client:命令行客户端工具。
Devel:其他编译语言编译 MySQL 程序时需要的库。
Libs:运行时共享库,给应用提供数据库连接依赖。
Libscompat:旧版兼容库,适配老旧软件依赖。
Test:官方测试用例与压测工具。
Source:MySQL 源代码。
2. MySQL 除了 RPM 安装之外,在 Linux 平台上还有那种形式的安装,请给出简单的说明。
从官网解压编译好的 tar 压缩包。
下载源代码包,编译安装。
直接 yum 一键安装。
3. 在 Windows 上安装 MySQL 之后,mysysqld 服务器程序、mysql 客户机程序、my.ini 配置文件、mysql 系统数据库、二进制日志文件分别保存在什么位置?
mysysqld服务器程序和 mysql 客户机程序在 \bin
my.ini 在MySQL 安装根目录
目录 mysql 系统数据库、二进制日志文件存放在 \data 目录。
4. 请说出 mysql.server、mysqld_safe、mysqld_multi 三个服务器助手程序的作用。
mysql.server:Linux 系统服务启动脚本。
mysqld_safe:监控 mysqld 进程,崩溃自动重启、记录错误日志。
mysqld_multi:对一台服务器运行多个 MySQL 实例进行统一启停、管理。
5. 在 Linux 上安装好 MySQL 8.0 之后,默认数据目录的具体位置是什么?该目录下都保存哪些数据库组件?在目录 /usr/sbin、/usr/bin、/etc、/var/log 分别保存哪些组件?
默认数据目录:/var/lib/mysql。包含:数据库目录、InnoDB 日志文件和系统表空间。
/usr/sbin:mysqld 服务主程序
/usr/bin:客户端工具
/etc:my.cnf主配置文件
/var/log:日志文件
6. 使用 mysql_config_editor 客户机程序可以创建加密登录路径凭证,请问加密过的用户名、口令和主机选项保存在什么地方?如何以文本的方式查看加密过的信息?
加密过的用户名、口令和主机选项保存在当前用户家目录 ~/.mylogin.cnf;
用mysql_config_editor print查看加密过的信息
7. 在 MySQL 中,如何更改 root 账户口令,请具体写出你所熟悉的两种。
SET PASSWORD FOR 'root'@'localhost' = '新密码';
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
8. 写出在 Linux 7 中启动和停止 MySQL 服务器的命令。
启动 systemctl start mysqld
停止 systemctl stop mysqld
9. MySQL 服务器进程 mysqld 由哪三层组成,从各自所实现的功能角度分别加以说明。
连接层:负责客户端连接、身份认证、线程管理、权限校验,接收并建立客户端连接。
SQL 层:包含解析、授权、优化、执行、日志记录。
存储层:管理表数据。
10. MySQL 支持的通讯协议都有哪些?其连接方式和所支持的操作系统有何不同。
|---------------|-------|------------|
| 协议 | 连接方式 | 操作系统 |
| TCP/IP | 本地,远程 | 所有操作系统 |
| Socket | 本地 | Linux/Unix |
| Shared memory | 本地 | Windows |
| Named pipes | 本地 | Windows |
11. 请说明 SQL 层的组件名称和各自的作用。
解析器:对 SQL 语句进行词法、语法解析,校验语法是否合法。
授权:校验当前登录用户,是否拥有对对应数据库、数据表的增删改查操作权限。
优化器:评估多种执行路径,选择最优执行计划。
查询执行:完成优化后的执行计划。
查询日志:记录SQL 执行全过程写入日志。