MySQL —— 配置文件

前一篇文章:MySQL —— MySQL 程序-CSDN博客

目录

·前言

一、使用方法

二、配置文件位置及加载顺序

1.在 Windows 系统中读取配置文件

2.在 Linux 系统中读取配置文件

三、配置文件语法

四、案例:设置客户端全局编码格式

·总结


·前言

本篇文章要介绍的是 MySQL 中的配置文件的相关内容。大多数 MySQL 程序都可以从配置文件(选项文件)中读取启动配置,可以在配置文件中指定常用配置,这样就不用在每次运行程序时都在命令行中输入它们。大部分配置文件都是纯文本格式,可以使用任何编辑器来进行创建。

一、使用方法

我们可以在连接数据库的时候使用选项 --defaults-file 指定我们要使用的配置文件,这样客户端程序就会读取并应用配置文件中相关的配置,命令如下所示:

# Linux 下的命令格式 mysql --defaults-file=/etc/mysql/my.cnf -uroot -p # windows 下的命令格式 mysql "--defaults-file=C:ProgramDataMySQLMySQL Server 5.7my.ini" -uroot -p

二、配置文件位置及加载顺序

1.在 Windows 系统中读取配置文件

在 Windows 系统中,配置文件的默认路径是:C:ProgramDataMySQLMySQL Server 5.7my.ini,这里的 ProgramData 是一个隐藏文件夹,所以查看的时候要点击显示隐藏文件夹,配置文件的默认位置如下图所示:

在我们修改配置文件之前一定要先把配置文件复制一份,防止修改错误之后无法复原。

MySQL 在 Windows 系统中查找并读取配置文件的顺序如下表所示,如果配置文件不存在则需要手动创建,读取的顺序按照表格从上到下来读取,后读取的文件中配置的选项优先级会更高,表格如下所示:

文件名

说明

%WINDIR%my.ini,%WINDIR%my.cnf

全局

C:my.ini,C:my.cnf

全局

BASEDIRmy.ini,BASEDIRmy.cnf

全局

defaults-extra-file

如果存在其他配置文件可以通过 --defaults-extra-file选项指定

%APPDATA%MySQL.mylogin.cnf

登录路径配置(仅客户端)

DATADIRmysql-auto.cnf

系统变量(仅服务器)

关于表中的一些特殊符号与词组它们的含义如下所示:

  • %WINDIR%:表示Windows 的系统文件的安装目录;
  • BASEDIR:表示MySQL 的安装路径;
  • %APPDATA%:表示 Windows 的应用程序数据存储路径;
  • DATADIR:表示 MySQL 数据目录(这个目录也就是配置文件的默认目录:C:ProgramDataMySQLMySQL Server 5.7)。

在 MySQL 寻找配置文件的过程中,如果找到了多个配置文件,并且其中有重复的配置选项,那么高优先级的配置文件就会覆盖低优先级文件中的选项。

2.在 Linux 系统中读取配置文件

在 Linux 系统中,配置文件的默认路径是:/etc/mysql/mysql.cnf,在 Linux 系统中进入 /etc/mysql 目录下,观察其中包含的内容,如下图所示:

该目录下还包含一个 mysql.conf.d 的目录,我们进入这个目录观察其中内容如下图所示:

虽然把客户端与服务器端的配置文件做了区分,但是我们一般不会分别在对应的配置文件中配置,而是把所有配置都写在默认的配置文件中,这样方便我们维护与管理。

MySQL 在 Linux 系统中查找并读取配置文件的顺序如下表所示,如果配置文件不存在则需要手动创建,读取的顺序按照表格从上到下来读取,后读取的文件中配置的选项优先级会更高,表格如下所示:

文件名

说明

/etc/my.cnf

全局

/etc/mysql/my.cnf

全局

$MYSQL_HOME/my.cnf

服务器特定选项(仅服务器)

defaults-extra-file

如果存在其他选项文件可以通过 --defaults-extra-file 选项指定

~/.my.cnf

用户特定选项

~/.mylogin.cnf

用户特定的登录路径选项(仅客户端)

DATADIR/mysqld-auto.cnf

系统变量(仅服务器)

在上表中有一个选项是 --defaults-extra-file 我们之前还介绍过一个选项 --defaults-file,他们两个的区别就在于选项–defaults-extra-file 会加载所有指定的配置文件,然后根据优先级来覆盖重复的选项配置,而选项–defaults-file 指使用它指定的配置文件。

关于表中的一些特殊符号与词组它们的含义如下所示:

  • ~:表示当前用户的注目录;
  • MYSQL_HOME:是设置的环境变量路径;
  • DATADIR:代表 MySQL 数据目录

其中 mysqlid-auto.cnf的优先级最高,在 MySQL 寻找配置文件的过程中,如果找到了多个配置文件,并且其中有重复的配置选项,那么高优先级的配置文件就会覆盖低优先级文件中的选项。

三、配置文件语法

在运行 MySQL 程序时,命令行上指定的任何长选项都可以在配置文件中指定,要获取选项列表可以使用如下的命令:

# 客户端程序 mysql --help #服务器端程序 mysql --verbose --help

在配置文件中指定选项时,可以省略前面两个前导破折号,并且每一行表示一个选项,例如:–quick 和 --host=127.0.0.1 在配置文件中的表示如下图所示:

配置文件中的空行会被忽略,非空行的语法如下所示:

  • #comment,;comment:注释行以 # 或 ; 为开头,注释可以从一行的中间开始;
  • [group]:设置选项的程序或组的名称,不区分大小写。如果选项组名称与程序名称相同,则组中的选项专门应用于该程序,例如:[mysqld] 和 [mysql] 组分别适用于 mysqld 服务端程序和 mysql 客户端程序;
  • opt_name:相当于命令行上的选项名;
  • opt_name=value:选项名对应的值,可以使用转义序列 , , , ,\ 和 s 来表示退格符、制表符、换行符、回车符、反斜杠和空格字符;
  • 为特定 MySQL 版本设置选项可以使用 [mysqld-5.7]、[mysqld-8.0] 的组名;
  • 在配置文件中可以使用 !include 指令来包含其他的配置文件,例如:!include /home/mydir/myopt.cnf 这样就把其他配置文件的配置也加载过来了;
  • 在配置文件中可以使用 !includedir 指令来搜索指定目录中的其他配置文件,例如:!includedir /home/mydir ,但不保证目录中选项文件的读取顺序。

[client] 这是 MySQL 发行版中所有客户端程序都会读取并应用这个组下的选项(除了 mysqld 这是服务端程序),在这个组下可以指定适用于所有客户端的通用选项,例如:配置用户名和密码,如下图所示:

当然这种配置完成后虽然每次连接数据库不用输入密码很方便,但是也会造成很大的安全隐患,所以并不建议直接把密码配置到配置文件当中。

我们还可以通过 [客户端程序名] 的形式来为不同客户端程序指定选项,例如:[mysql] ,当运行 mysql 程序时会读取并应用该组下的配置,如果选项名与 [client] 重复,[client] 中的选项将会被覆盖,如下图所示:

有关配置文件的语法还要注意以下几点:

  • 选项名称和值中的前导和尾随空格会自动删除;

  • 在 Windows 系统中设置路径应该使用转义字符,如下所示:

    basedir="C:\Program Files\MySQL\MySQL Server 8.0" # 或者使用以下形式 basedir="C:/Program Files/MySQL/MySQL Server 8.0"
  • !includedir 在 Linux 操作系统中会自动搜索指定目录下任何以 .cnf 为后缀名的文件,在 Windows 中,会搜索指定目录下任何以 .ini 或 .cnf 为后缀名的文件;

  • !include 只会读取包含文件中当前客户端的组配置,例如:当前运行的是 mysql 程序,那么只会读取 [mysql] 组中的选项配置;

  • 在 Windows 中请确保在配置文件的最后一行加一个换行符,否则该行会被省略。

四、案例:设置客户端全局编码格式

介绍完配置文件中的语法格式后,我们就来在 Linux 编辑一下全局配置文件(默认位置:/etc/mysql/my.cnf),在其中为客户端设置全局的编码格式为 utf8mb4,那么我们只需要在 [client] 节点下指定相应的选项即可,操作如下图所示:

·总结

文章到此就要结束了,还是要注意:在 Windows 系统中,MySQL 配置文件的后缀名为.ini 或 .cnf,在 Linux 系统中,MySQL 配置文件的后缀名只有.cnf,不要在 Linux 中也把 MySQL 配置文件后缀名改成 .ini 哦,每次我们在**修改配置文件时,一定要先备份!备份!**不然修改错了就无法进行恢复了,本篇文章主要介绍的内容就是 MySQL 中有关配置文件的内容,如果对文章内容有所疑惑,欢迎在评论区进行留言,如果感觉本篇文章还不错希望能收到你的三连支持,那么我们下一篇文章再见吧~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026 外贸独立站如何利用 GSC 与 Ahrefs 追踪 AI Visibility可见性

目录 引言:AI 搜索正在重塑外贸独立站的 B2B 流量 免费方案:Google Search Console (GSC) 深度监控 路径 A:知识问答(Knowledge Panels/Answers) 路径 B:正则表达式(Regex)精准拦…

Linux安装Redis以及Redis三种启动方式

目录树 一、安装前的软件准备二、Redis的安装三、Redis的三种启动方式!!! 1、直接启动Redis2.后台进程方式启动Redis3.通过开机启动方式 四、Window上桌面连接Linux上的Redis 一、安装前的软件准备 Xshell —— 连接Linux并操作其终端的软…

vulnhub靶场实战系列-1.靶场实战平台介绍|课程笔记|网络安全|

1-1-为什么需要靶场平台_笔记 一、网络安全大师课00:05 1. 课程介绍00:09 课程目标:帮助学员建立对网络安全行业的整体认知,了解网络安全对国家和社会的作用,避免"一叶障目,不见森林"的情况。课…

MySQL 字符串日期格式转换

在MySQL中,经常需要将字符串类型的日期转换成日期或时间类型,或者在不同的日期格式之间进行转换。MySQL提供了几种方法来实现这一点,包括使用STR_TO_DATE()和DATE_FORMAT()函数。 1. 使用STR_TO_DATE()函数 STR_TO_DATE()函数可以将字符串转…

MCU+AT向OpenCPU转型:技术变革的必然性深度解析(全篇完结)

上一篇在充分理解了OpenCPU的技术优势与架构潜力后,一个现实而关键的问题摆在工程师及企业面前:如何在实际工程中,将现有的MCUAT模组架构,安全、平滑地演进至OpenCPU平台?第六章:迁移与融合策略——从MCUAT…

深度学习毕设项目推荐-基于python人工智能-CNN的水果识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

macOS安装Redis

本指南告诉你如何使用Homebrew在macOS上安装Redis。Homebrew 是在 macOS 上安装 Redis 的最简单方法。 首先,确保你已经安装了Homebrew。在终端上,运行 brew --version如果你这个命令失败了,你就需要安装Homebrew。 1 安装Redis 在终端中运行…

mysql WITH的多种用法与示例

在 MySQL 中,WITH 语句(或称为公用表表达式,Common Table Expressions,简称 CTE)用于定义一个临时结果集,可以在查询的其他部分中重复引用。通常用在复杂查询中,方便将查询逻辑分解为多个部分&a…

导师推荐!MBA毕业论文必备!10款AI论文写作软件TOP10测评

导师推荐!MBA毕业论文必备!10款AI论文写作软件TOP10测评 2026年MBA论文写作工具测评:为何需要一份专业榜单? 随着人工智能技术的不断发展,AI写作工具已成为MBA学生撰写毕业论文的重要辅助工具。然而,面对市…

MySQL 启动失败 (code=exited, status=1FAILURE) 异常解决方案

目录 前言1. 问题描述2. 查看错误日志文件 2.1 确认日志文件路径2.2 查看日志文件内容 3. 定位问题 3.1 问题分析 4. 解决问题 4.1 注释掉错误配置4.2 重启 MySQL 服务 5. 总结结语 前言 在日常运维和开发过程中,MySQL数据库的稳定运行至关重要。然而&#xff0c…

RAP:无需显式匹配,配准任意3D点云数据!

0. 论文信息标题:Register Any Point: Scaling 3D Point Cloud Registration by Flow Matching作者:Yue Pan, Tao Sun, Liyuan Zhu, Lucas Nunes, Iro Armeni, Jens Behley, Cyrill Stachniss机构:University of Bonn、Stanford University原…

mysql SQL子查询(史上最详细)

一、什么事子查询 SQL子查询(Subquery)是嵌套在其他SQL查询中的查询。 子查询可以用在SELECT、INSERT、UPDATE、DELETE语句中,以及在WHERE子句、HAVING子句或FROM子句中。 子查询可以返回一个值、一列值或多行多列值,根据这些返回…

技术债务管理:AI时代的代码质量

技术债务管理:AI时代的代码质量 关键词:技术债务管理、AI时代、代码质量、软件开发、债务识别、债务偿还 摘要:本文聚焦于AI时代下的技术债务管理与代码质量问题。在软件开发不断演进的过程中,技术债务的积累对项目的可维护性和可…

什么是品牌全域电商代运营?

当前电商行业已进入全域竞争深水区,流量分散化、渠道多元化、用户需求个性化成为常态,传统单一平台代运营因渠道割裂、资源分散等问题,已难以支撑品牌全链路增长需求。品牌全域电商代运营顺势升级,通过整合多渠道资源、贯通全链路…

mysql in查询大数据量业务无法避免情境下优化

在 MySQL 中,IN 查询操作广泛用于从数据库中检索符合条件的多条记录,但当涉及到大数据量的 IN 查询时,性能可能会显著下降。特别是当 IN 子句中的元素数量非常大时,MySQL 需要对每个元素进行匹配,这会导致查询变得非常…

mybatis plus打印sql日志

1、官方文档 使用配置 | MyBatis-Plus 2、日志实现 MyBatis-Plus 提供了多种日志实现(log-impl),用于记录 SQL 语句和相关操作,帮助开发者进行调试和监控数据库操作。以下是一些可用的日志实现及其说明: StdOutImpl…

专业的TP公司主要是做什么的呢?

TP(Tmall Partner,天猫合作伙伴)公司是经天猫等主流电商平台官方认证的专业代运营机构,凭借对平台规则的深度掌控、成熟的运营方法论与丰富的资源储备,成为品牌布局天猫等核心电商渠道的重要战略伙伴。在品牌线上化竞争…

强烈安利8个AI论文网站,MBA论文写作必备!

强烈安利8个AI论文网站,MBA论文写作必备! 1.「千笔」—— 一站式学术支持“专家”,从初稿到降重一步到位(推荐指数:★★★★★)对于MBA学生而言,论文写作不仅是学术能力的体现,更是时…

材料电性能检测仪器的原理、演进与工程应用

材料电性能检测的核心是通过仪器精确测量介电常数(ε)和介质损耗角正切值(tanδ),这些参数直接反映材料的绝缘性能、能量损耗和高频适应性。其原理基于电桥法、谐振法或阻抗法,通过施加交流电场并测量材料的…

第1-2章 数据分析流程及Numpy科学计算

第一章 数据分析流程 数据分析完整流程 数据收集→数据清洗→数据分析→数据可视化 数据分析核心三件套 Numpy Pandas Matplotlib 第二章 Numpy科学计算 Numpy介绍 Python 中科学计算的基础包,提供多维数组对象、各种派生对象(掩码数组和矩阵等&#xff…