🤩 MySQL-07-MySQL配置文件

🤩 MySQL-07-MySQL配置文件

mysql-logo

1 开篇介绍

👋 Hello 大家好,我是 NagaseMySQL 从删库到跑路 ,又到了学习 MySQL 的时刻,接下来就让我们感受一下 MySQL 独特的魅力吧。

在之前的学习中,我们知道了 my.inimy.cnfMySQL 使用的配置文件,MySQL 启动的时候会读取该配置文件,我们可以通过修改该配置文件来自定义 MySQL 的启动。

注意⚠️:修改完配置文件之后一定要记得重启 MySQL 服务!!!

在该篇博客中,我们主要介绍 MySQL 配置文件 相关的内容,祝你学的开心 🥳 。

2 配置文件路径

2.1 Windows 平台

Windows 平台的配置文件一般在 MySQL 的安装根目录下。

Windows 平台下的配置文件也可以放在如下任意路径中,如下图所示:

image-20210201162454664

注意事项⚠️

在安装根目录下可能会发现没有 my.ini 这个配置文件,只有 my-default.ini 这个文件,这个文件是配置文件的模版文件,我们只需要将此文件复制一下,并重命名为 my.ini 即可!!!

如果连 my-default.ini 都没有,那么直接新建一个 my.ini 文件即可!!!

2.2 macOS 平台

macOS 平台安装完 MySQL 之后不会主动提供配置文件,因为 macOS 使用的是最优配置,如果想要自定义配置,那么需要手动创建 my.cnf 配置文件。

那么在哪里创建呢?通过 mysql --help 命令查看 my.cnf 的读取优先级,如下图所示:

image-20210201162242789

因此只要我们在这些路径中任意选择一个创建 my.cnf 即可。

2.3 Linux 平台

Linux 平台的配置文件一般是在 /etc/my.cnf

但是我们也可以在其他路径中编辑配置文件,如下图所示:

image-20210201162645811

3 验证程序在启动前会先读取配置文件

编辑 my.ini 文件内容。

[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysql]
print('Hello World!')  # 这是Python的语法,如果运行客户端之后报错,则证明确实是程序在运行之前会先读取配置文件

注意,更改配置文件之后一定要重新启动服务端才可以!重启完成之后再次登录客户端,会发现如下报错信息:

C:\Windows\system32>mysql -u root -p
mysql: unknown option '--print('Hello World!')'

这就证明了,程序在启动之前先读取了配置文件。

4 配置文件内容

[mysqld]  # 一旦服务端启动立刻加载下面的配置
...

[mysql]  # 一旦自己的客户端启动立刻加载下面的配置
...

[client]  # 其他客户端的配置
...

[mysqld] 服务端参数配置

参数名称 说明
lower_case_table_names 值为0代表表名存储为给定的大小和比较是区分大小写的;值为1代表表名存储在磁盘是小写的,但是比较的时候是不区分大小写;值为2代表表名存储为给定的大小写但是比较的时候是小写的(UNIX、Linux下 lower_case_table_names 默认值为 0 。Windows下默认值是 1 。macOS 下默认值是 2
port 表示 MySQL 服务器的端口号
basedir 表示 MySQL 的安装路径
datadir 表示 MySQL 数据文件的存储位置,也是数据表的存放位置
default-character-set 表示服务器端默认的字符集
default-storage-engine 创建数据表时,默认使用的存储引擎
sql-mode 表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度
max_connections 表示允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的
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 表示用于排序的缓存大小

5 lower_case_table_names 参数

5.1 参数说明

lower_case_table_namesMySQL 设置大小写是否敏感的一个参数。

lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的

lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写

lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的

**Linux 平台中默认值是 0 **

**Windows 平台中默认值是 1 **

macOS 平台中默认值是 2

5.2 查看当前参数的值

登录到 MySQL 客户端,然后输入命令:SHOW VARIABLES WHERE Variable_name = 'lower_case_table_names';

image-20210203153030151

5.3 更改方法

更改配置文件 lower_case_table_names 参数的值,然后重启 MySQL 服务即可。

5.4 生产环境中注意事项

由于在生产环境中,搭载 MySQL 数据服务的平台一般都是 Linux 平台,因此,初始化的时候默认采用了 0 ,即 存储为给定的大小写并且区分大小写

这样就带来了一个弊端:同一个实例中有可能包含大小写都存在的数据库或者表,这样的话,在调用的时候一定要注意大小写。

posted @ 2021-03-12 23:18  码动世界  阅读(129)  评论(0编辑  收藏  举报