- 客户端以及其他可执行文件目录:
/usr/bin/
mysql
客户端
TIPS:
最好不要在一行命令中输入密码,因为history、ps等命令可以看到
各个参数顺序没有规定
mysql_config_editor
mysql_migrate_keyring
mysql_secure_installation
mysql_ssl_rsa_setup
mysql_tzinfo_to_sql
mysql_upgrade
mysqladmin
mysqlbinlog
mysqlcheck
mysqld_multi
服务端,运行多进程实例
mysqld_safe
一个服务端启动脚本,会间接调用mysqld并持续监控服务器的运行状态,当服务器出现错误时,
还可以帮助重启服务器程序。另外会将服务器的错误信息和其他诊断信息输出到错误日志。
mysqldump
mysqldumpslow
mysqlimport
mysqlpump
mysqlshow
mysqlslap
- 配置文件目录:
/etc/mysql/
conf.d
my.cnf
- 服务器目录:
/usr/sbin/
mysqld
少用,常用mysqld_safe
- 数据目录:(重要,存放运行数据,日志等):
·可以通过命令 SHOW VARIABLES LIKE 'datadir' 获取
我们知道,每当使用SQL创建一个数据库, CREATE DATABASE 库名,会发生啥呢?答案就在数据目录中。查看数据目录 /var/lib/mysql 发现除了一堆不知道啥的文件外,还有一些文件夹,而这些和数据库同名的文件夹就是对应数据库的数据目录。
比如使用MYSQL创建了一个 demo_db数据库:
CREATE DATABASE demo_db;
数据目录下多了一个demo_db文件夹
刚开始,数据库是空的,对应文件夹也是空。进去 demo_db 验证一下:
root@d11c0fd324ed:/var/lib/mysql/demo_db# ls -lh
total 0
现在我们创建一张表,应该会看到增加了一个idb文件
use demo_db;
CREATE TABLE IF NOT EXISTS demo_tb(
`id` INT UNSIGNED AUTO_INCREMENT,
PRIMARY KEY ( `id` )
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE "utf8_general_ci";
请注意,我的MySQL版本是8.0,所以才只有 表名.idb 文件,5.7以及以下版本应该有两个文件,分别是:
- 表名.frm # 对应表结构定义文件
- 表名.idb # 对应表数据文件
8.0版本没有frm文件是因为ORACLE把这两文件合并了。你们可以自行查阅文章学习怎么解析:.frm在MySQL8中不存在了,那去哪里了呢?
我们知道InnoDB是以页为单位来管理存储空间的,每页默认16K,每个索引其实是一颗B+树,每棵树中的一个节点为一个数据页,页之间使用双向链表链接,树的叶子节点为用户记录。
为了更好的管理这些页,InnoDB为每张表创建一个表空间,表空间是一个逻辑概念,对应一个或者多个文件,而这些 idb 文件正是组成了表空间。
- 库文件目录:
/usr/lib/mysql
- 错误消息和字符集文件目录:
/usr/share/mysql