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

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
关于MySQL数据库的学习指南总结
【6月更文挑战第17天】MySQL是流行的关系型DBMS,适合各种应用。学习要点包括安装配置、数据类型、SQL(如SELECT、INSERT)、关系模型、表设计、SQL查询(如WHERE、ORDER BY)、事务处理、用户管理、性能优化和高级技术如存储过程、触发器。了解ACID特性,使用索引和内存优化提升性能,通过备份恢复确保数据安全。不断学习新技术以提升技能。
65 3
|
2月前
|
关系型数据库 MySQL
mysql配置文件的使用
mysql配置文件的使用
21 1
mysql配置文件的使用
|
2月前
|
SQL 关系型数据库 MySQL
MySQL基础(二)----DML学习
MySQL基础(二)----DML学习
21 3
|
2月前
|
存储 关系型数据库 MySQL
|
1月前
|
SQL 关系型数据库 MySQL
学习mysql中使用inner join,left join 等
学习mysql中使用inner join,left join 等
|
1月前
|
存储 SQL 关系型数据库
MySQL数据库学习指南与学习资源推荐
MySQL数据库学习指南与学习资源推荐
|
2月前
|
SQL 关系型数据库 数据库
nacos 2.2.3版本 查看配置文件的历史版本的接口 是针对MySQL数据库的sql 改成postgresql后 sql语句报错 该怎么解决
在Nacos 2.2.3中切换到PostgreSQL后,执行配置文件历史版本分页查询出错,因`LIMIT 0, 10`语法不被PostgreSQL支持,需改为`LIMIT 10 OFFSET 0`。仅当存在历史版本时报错。解决方案是调整查询SQL以兼容PostgreSQL语法。
|
2月前
|
SQL 关系型数据库 MySQL
MySQL单表操作学习DDL_DML_DQL语句
MySQL单表操作学习DDL_DML_DQL语句
21 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL学习必备SQL_DDL_DML_DQL
MySQL学习必备SQL_DDL_DML_DQL
20 0
|
3月前
|
SQL 监控 关系型数据库
【MySQL学习】MySQL的慢查询日志和错误日志
【MySQL学习】MySQL的慢查询日志和错误日志