学习MySQL系列:6. MySQL 读取配置文件疑惑

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 学习MySQL系列:6. MySQL 读取配置文件疑惑

发现悖论


今天再看MySQL其他文章的时候,发现其中有个知识点是读取配置文件,不是按照优先级去读取的,我们在学习 学习MySQL系列:2. MySQL配置项和配置文件 的时候,我们写过读取配置是按照优先级去读的,这个和知识点有点悖论,于是乎,准备探索一下。


image.png


资料梳理


按照资料所述,我们去读MySQL配置文件的时候,是有逻辑规律的,可以使用命令mysql --help | grep my.cnf来获取读取文件路径,当这些路径有多个文件的时候,我们是以最后一个文件为准,而非是按照优先级去读取的。


例如执行命令:


/home/mysql-source/bin/mysql --help | grep my.cnf

image.png

执行结果为如上,当我们/etc/my.cnf/home/mysql-source/etc/my.cnf都存在的时候,它会先读/etc/my.cnf然后再度/home/mysql-source/etc/my.cnf,且以/home/mysql-source/etc/my.cnf为准。



验证


那我们如何验证该问题呢? 我的想法是写多个my.cnf放置到不同的目录下,其中有些许差异,我们再验证,我们读到了哪些配置文件,就可以了

我们实验下 我们在此路径都写一个my.cnf


image.png


配置文件如上,/etc/my.cnf我们没有配置character_set_server,所以是默认值,而/home/mysql-source/etc/my.cnf最终character_set_serverutf8mb4所以,我们仅需要创建一个库,然后输出其字符编码,我们就知道是读取哪个文件了,就可以验证我们的猜想了。


我们启动MySQL服务器,创建一个库,然后再看它的字符集,我们就明白是使用了哪个配置文件了。


image.png

我们发现,建库的字符编码是utf8mb4,所以读取的配置是/home/mysql-source/etc/my.cnf,而非/etc/my.cnf



总结


读取配置文件路径的方法,可以使用mysql --help | grep my.cnf来获取,而读取结果并非以优先级去读取的,而是以有配置文件的最后一个为准,知识点,应该任何一个点都不能马虎,失之毫厘谬以千里,因为感觉是这样,所以想当然的写,则可能会出错,学习过程,不可马虎,要认真对待才行。







相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
65 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
86 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
27 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
2月前
|
关系型数据库 MySQL Go
go抽取mysql配置到yaml配置文件
go抽取mysql配置到yaml配置文件
|
1月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
19 0
|
1月前
|
Kubernetes 关系型数据库 MySQL
k8s学习--利用helm部署应用mysql,加深helm的理解
k8s学习--利用helm部署应用mysql,加深helm的理解
192 0
|
2月前
|
SQL 关系型数据库 MySQL
学习MySQL操作的有效方法
学习MySQL操作的有效方法
45 3
|
2月前
|
SQL 关系型数据库 MySQL
如何学习 MySQL?
如何学习 MySQL?
39 3
|
3月前
|
SQL 关系型数据库 MySQL
学习mysql基础操作
【8月更文挑战第20天】学习mysql基础操作
40 1