MySQL目录结构说明
MySQL 安装完成后,会在磁盘上生成一个目录,该目录就被称为 MySQL 的安装目录。
MySQL 的安装目录包含一些子目录以及一些后缀名为.ini
的配置文件。为了更好地学习 MySQL,初学者必须要对 MySQL 安装目录下各个子目录的意义和作用有所了解。下面对 MySQL 的安装目录进行详细讲解。
MySQL 5.7 版本的安装配置后,目录结构可能如下图所示:
注意:MySQL 5.7 的 Data 目录和 my.ini 文件有时并不放在 MySQL 的安装目录下,而是在配置文件中自己指定的目录下(配置文件具体内容下文有详细说明),我自己的安装目录是在:D:\ProgramFiles\MySQL
下(如上图所示)。一般情况下,C 盘下的 ProgramData 目录是隐藏的,需要取消隐藏。
下面先介绍安装目录中各文件的含义和作用:
1)bin文件夹
用于放置一些可执行文件,如 mysql.exe、mysqld.exe、mysqlshow.exe 等。
2)docx文件夹
存放一些文档
3)include文件夹
用于放置一些头文件,如:mysql.h、mysql_ername.h 等。
4)lib文件夹
用于放置一系列库文件
5)share文件夹
用于存放字符集、语言等信息
6)LICENSE文件
7)my.ini文件
my.ini 是 MySQL 默认使用的配置文件,一般情况下,只要修改 my.ini 配置文件中的内容就可以对 MySQL 进行配置。
除了上述介绍的目录,MySQL 安装目录下可能还有几个后缀名为.ini
的配置文件,不同的配置文件代表不同的含义。
my.ini 是 MySQL 默认使用的配置文件,其它的配置文件都是适合不同数据库的配置文件的模板,在文件名中就说明了适合的数据库类型,下面对这几个配置文件进行详细讲解。
- my-huge.ini:适合超大型数据库的配置文件。
- my-large.ini:适合大型数据库的配置文件。
- my-medium.ini:适合中型数据库的配置文件。
- my-small.ini:适合小型数据库的配置文件。
- my-template.ini:是配置文件的模板,MySQL 配置向导将该配置文件中选择项写入到 my.ini 文件。
- my-innodb-heavy-4G.ini:表示该配置文件只对于 InnoDB 存储引擎有效,而且服务器的内存不能小于 4GB。
8)README文件
9)DATA文件夹
Data 目录中用于放置一些日志文件以及数据库。我们创建和保存的数据都存在这个目录里。
如果你找不到自己建立的库或者表的文件,可能不在这个data文件夹下面,连接上mysql之后,输入show global variables like "%datadir%";来查看数据文件存储路径,找到路径之后,到对应路径下如果找不到这个文件夹,那么可能是隐藏的,把隐藏的文件显示一下就行了。
MySQL配置文件详解
我自己的配置文件内容如下:
[mysqld]
# 设置3306端口
port=3307
# 设置mysql的安装目录
basedir=C:\mysql-5.7.32-win32
# 设置mysql数据库的数据的存放目录
datadir=D:\Program Files\MySQL\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4
客户端:
[CLIENT]里面的是给客户端程bai序读取配置用的。
其中:
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4
- port:表示 MySQL 客户端连接服务器端时使用的端口号,默认的端口号为 3306。如果需要更改端口号的话,可以直接在这里修改。需要注意的是,每次修改 my.ini 文件中的参数后,必须重新启动 MySQL 服务才会有效。
- default-character-set:表示 MySQL 客户端默认的字符集。
服务器端:
[MYSQLD]里面的是给服务器程序运行时使bai用的,代表创建数据库、表、字段时的默认字符集编码。查了一下资料,发现我配置文件中的服务器端参数设备不太全面,以下是其他资料中对mysql服务器参数的说明:
参数名称 | 说明 |
---|---|
port | 表示 MySQL 服务器的端口号 |
basedir | 表示 MySQL 的安装路径 |
datadir | 表示 MySQL 数据文件的存储位置,也是数据表的存放位置 |
default-character-set | 表示服务器端默认的字符集 |
default-storage-engine | 创建数据表时,默认使用的存储引擎 |
sql-mode | 表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度 |
max_connections | 表示允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过'conn%'通配符查看当前状态的连接数量,以定夺该值的大小。 |
query_cache_size | 表示查询时的缓存大小,缓存中可以存储以前通过 SELECT 语句查询过的信息,再次查询时就可以直接从缓存中拿出信息,可以改善查询效率 |
table_open_cache | 表示所有进程打开表的总数 |
tmp_table_size | 表示内存中每个临时表允许的最大大小 |
thread_cache_size | 表示缓存的最大线程数 |
myisam_max_sort_file_size | 表示 MySQL 重建索引时所允许的最大临时文件的大小 |
myisam_sort_buffer_size | 表示重建索引时的缓存大小 |
key_buffer_size | 表示关键词的缓存大小 |
read_buffer_size | 表示 MyISAM 表全表扫描的缓存大小 |
read_rnd_buffer_size | 表示将排序好的数据存入该缓存中 |
sort_buffer_size | 表示用于排序的缓存大小 |
InnoDB 存储引擎使用的参数,参数说明如下:
- innodb_additional_mem_pool_size:表示附加的内存池,用来存储 InnoDB 表的内容。
- innodb_flush_log_at_trx_commit:是设置提交日志的时机,若设置为 1,InnoDB 会在每次提交后将事务日志写到磁盘上。
- innodb_log_buffer_size:表示用来存储日志数据的缓存区的大小。
- innodb_buffer_pool_size:表示缓存的大小,InnoDB 使用一个缓冲池类保存索引和原始数据。
- innodb_log_file_size:表示日志文件的大小。
- innodb_thread_concurrency:表示在 InnoDB 存储引擎允许的线程最大数。
如何安装mysql可查看:https://blog.csdn.net/youarenotme/article/details/109291819
以下是一些关于配置文件详解的资料链接:
http://c.biancheng.net/view/7571.html
https://blog.csdn.net/zhangguanghui002/article/details/78959816
https://www.cnblogs.com/angle6-liu/p/10109628.html