MySQL 8配置文件详解

MySQL 8 配置文件详解

MySQL 8 的配置文件(my.cnf或my.ini)是MySQL服务器启动时读取的主要配置文件,它包含了服务器运行所需的各种参数设置。以下是MySQL 8配置文件的详细解析:

配置文件位置

MySQL 8 会按照以下顺序查找配置文件:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. ~/.my.cnf (用户特定配置)
  4. 通过--defaults-file参数指定的文件

配置文件结构

配置文件通常分为多个部分,用方括号[]标识:

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock[mysqld]
# 服务器配置选项[mysqld_safe]
# 安全相关选项[mysql]
# MySQL客户端选项[mysqldump]
# 备份工具选项

核心配置参数详解

基础配置

[mysqld]
# 服务器标识
server-id = 1  # 复制环境中唯一标识服务器# 网络配置
port = 3306  # 监听端口
bind-address = 127.0.0.1  # 绑定IP地址
skip-networking = 0  # 是否禁用网络连接# 文件路径
datadir = /var/lib/mysql  # 数据目录
socket = /var/run/mysqld/mysqld.sock  # Unix socket文件
pid-file = /var/run/mysqld/mysqld.pid  # PID文件位置
tmpdir = /tmp  # 临时目录# 字符集设置
character-set-server = utf8mb4  # 默认字符集
collation-server = utf8mb4_unicode_ci  # 默认排序规则

内存相关配置

[mysqld]
# 缓冲池配置(重要)
innodb_buffer_pool_size = 4G  # InnoDB缓冲池大小,通常设为物理内存的50-70%
innodb_buffer_pool_instances = 8  # 缓冲池实例数,提高并发性# 连接相关
max_connections = 200  # 最大连接数
thread_cache_size = 10  # 线程缓存大小# 排序和临时表
sort_buffer_size = 2M  # 每个排序线程分配的缓冲区大小
join_buffer_size = 2M  # 连接操作缓冲区大小
tmp_table_size = 64M  # 临时表内存大小
max_heap_table_size = 64M  # 内存表最大大小

InnoDB存储引擎配置

[mysqld]
# InnoDB基础配置
innodb_file_per_table = ON  # 每个表使用单独的表空间文件
innodb_flush_method = O_DIRECT  # I/O刷新方式
innodb_log_file_size = 256M  # 重做日志文件大小
innodb_log_buffer_size = 16M  # 重做日志缓冲区大小
innodb_flush_log_at_trx_commit = 1  # 事务提交时日志刷新方式(1最安全)# InnoDB高级配置
innodb_read_io_threads = 8  # 读I/O线程数
innodb_write_io_threads = 8  # 写I/O线程数
innodb_io_capacity = 2000  # IOPS能力估计
innodb_io_capacity_max = 4000  # 最大IOPS
innodb_buffer_pool_dump_at_shutdown = ON  # 关闭时保存缓冲池状态
innodb_buffer_pool_load_at_startup = ON  # 启动时加载缓冲池状态

日志配置

[mysqld]
# 错误日志
log_error = /var/log/mysql/error.log  # 错误日志路径
log_error_verbosity = 3  # 错误日志详细程度(1-3)# 慢查询日志
slow_query_log = 1  # 启用慢查询日志
slow_query_log_file = /var/log/mysql/mysql-slow.log  # 慢查询日志路径
long_query_time = 2  # 慢查询阈值(秒)
log_queries_not_using_indexes = 1  # 记录未使用索引的查询# 二进制日志(复制和恢复)
log_bin = /var/log/mysql/mysql-bin.log  # 二进制日志路径
binlog_format = ROW  # 二进制日志格式(ROW/STATEMENT/MIXED)
binlog_expire_logs_seconds = 2592000  # 日志过期时间(30天)
sync_binlog = 1  # 每次事务都同步二进制日志

安全相关配置

[mysqld]
# 安全设置
local_infile = OFF  # 禁用LOAD DATA LOCAL INFILE
skip_name_resolve = ON  # 禁用DNS解析
secure_file_priv = /var/lib/mysql-files  # 限制文件导入导出位置
default_authentication_plugin = mysql_native_password  # 默认认证插件# SSL配置
ssl-ca = /etc/mysql/ca.pem
ssl-cert = /etc/mysql/server-cert.pem
ssl-key = /etc/mysql/server-key.pem
require_secure_transport = ON  # 要求安全连接

性能优化配置

[mysqld]
# 查询缓存(MySQL 8.0已移除查询缓存)
# query_cache_type = 0
# query_cache_size = 0# 表定义缓存
table_open_cache = 4000  # 表定义缓存数量
table_definition_cache = 2000  # 表定义信息缓存# 其他优化
innodb_stats_on_metadata = OFF  # 禁用统计信息自动更新
innodb_adaptive_hash_index = ON  # 启用自适应哈希索引
innodb_print_all_deadlocks = ON  # 记录所有死锁信息

MySQL 8 新增配置项

[mysqld]
# MySQL 8新增特性
default_collation_for_utf8mb4 = utf8mb4_0900_ai_ci  # 新的默认排序规则
log_error_services = 'log_filter_internal; log_sink_json'  # 日志服务组件
binlog_group_commit_sync_delay = 100  # 组提交延迟(微秒)
binlog_group_commit_sync_no_delay_count = 10  # 最大等待事务数

注意事项

  1. 修改配置文件后需要重启MySQL服务才能生效
  2. 可以使用mysqld --verbose --help查看所有可用选项
  3. 动态参数可以通过SET GLOBAL命令修改而无需重启
  4. 建议使用mysqld --defaults-file=/path/to/my.cnf --help --verbose检查配置是否正确
  5. MySQL 8.0移除了查询缓存(query cache)相关配置

最佳实践

  1. 根据服务器内存大小合理设置innodb_buffer_pool_size
  2. 生产环境建议启用二进制日志和慢查询日志
  3. 安全相关配置应根据实际需求严格设置
  4. 定期检查并优化配置参数
  5. 使用MySQL配置向导工具(如MySQLTuner)获取优化建议

以上是MySQL 8配置文件的主要参数详解,实际配置应根据具体应用场景和服务器硬件资源进行调整。

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

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

相关文章

台湾住宅IP哪家好,怎么找到靠谱的海外住宅IP代理商

探索台湾住宅IP:如何找到靠谱的海外住宅IP代理商? 在当今数字化时代,海外住宅IP的需求日益增长,尤其在跨境电商、网络营销、数据抓取等领域。对于需要台湾住宅IP的用户来说,找到一家靠谱的海外住宅IP代理商至关重要。本…

读研一些毕业感想

回首过往三年,从踌躇迷茫到明晰坚定,从稚嫩懵懂到明理成熟,一切只觉轻舟已过万重山。 依稀记得我拉着行李箱跋山涉水来到学校的那天,早上从广东中山乘坐10小时高铁到北京西,然后坐1一个多小时地铁到学校&#x…

《飞算JavaAI:稳定、高效、跨平台的AI编程工具优势解析》

随着人工智能技术的不断发展,AI编程工具越来越成为开发者们在研究和应用AI模型时不可或缺的利器。国内外的AI编程工具多种多样,涵盖了从基础编程语言、框架到图形化界面的多种选择。然而,在这些工具中,飞算JavaAI作为一种基于Java…

day27/60重写(补充)

DAY 27 函数专题2:装饰器 ps:第一期day27对应5月16日 知识点回顾: 装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值 作业: 编写一个装饰器 logger,在函数执行前后打印日志信息(如…

网传西门子12亿美元收购云原生工业软件,云化PLM系统转机在协同

近日,网传西门子将以12亿美元全现金交易收购云原生MES公司FlexFact,并整合其技术至Xcelerator工业软件平台。如果此次收购动作完成,将会成为西门子加速工业云转型的标志性动作,背后的意义也极为深远,不仅会直接响应竞争…

大模型笔记_检索增强生成(RAG)

1. RAG的概念 RAG(Retrieval-Augmented Generation) 是一种结合 信息检索(Retrieval)与文本生成(Generation)的模型架构,旨在通过动态引入外部知识库或实时数据,提升大语言模型&…

Spring Security是如何完成身份认证的?

1. 用户名和密码被过滤器获取到,封装成 Authentication ,通常情况下是 UsernamePasswordAuthenticationToken 这个实现类。 2. AuthenticationManager 身份管理器负责验证这个 Authentication 3. 认证成功后, AuthenticationManager 身份管理器返回一…

Python爬虫实战:研究xmltodict库相关技术

1. 引言 1.1 研究背景与意义 气象数据是环境研究、农业生产、城市规划等领域的重要基础。随着互联网技术的发展,越来越多的气象数据以 XML 格式在网络上公开。XML(可扩展标记语言)因其结构化和自描述性的特点,成为数据交换的标准格式之一。然而,这些数据通常分散在不同的…

中小企业无线局域网络搭建与优化指南

1. 引言:无线网络——驱动中国中小企业数字化转型的引擎 无线网络已成为现代企业运营的基础设施,直接影响员工工作效率和客户体验。随着Wi-Fi7技术的成熟和普及,中小企业网络建设正迎来全新机遇。在数字经济浪潮席卷全球的今天,无…

【已解决】python的kafka-python包连接kafka报认证失败

先说原因:安装python包的时候,多装了一个kafka的包:kafka 1.3.5 我把py文件打包成二进制文件,在linux上执行就一直报认证失败,后来确认登录信息、认证方式没有问题,把这个kafka包卸载…

传输层协议TCP(下)

上一篇https://blog.csdn.net/Small_entreprene/article/details/148193741?sharetypeblogdetail&sharerId148193741&sharereferPC&sharesourceSmall_entreprene&sharefrommp_from_link 接下来,我们来谈论TCP具体的机制! 具体TCP机制 …

洛谷B3612 【深进1.例1】求区间和

题目描述 给定 n 个正整数组成的数列 a1​,a2​,⋯,an​ 和 m 个区间 [li​,ri​],分别求这 m 个区间的区间和。 输入格式 第一行,为一个正整数 n 。 第二行,为 n 个正整数 a1​,a2​,⋯,an​ 第三行,为一个正整数 m 。 接下…

debian12 修改MariaDB数据库存储位置报错

debian12 修改MariaDB数据库存储位置到home报错 MariaDB 修改存储路径后启动失败问题解决 更改数据存储位置 如果需要将数据存储到其他位置(如更大的分区): 停止 MariaDB 服务: bash sudo systemctl stop mariadb 创建新目录并设…

【评测】flux-dev文生图模型初体验

回到目录 【评测】flux-dev文生图模型初体验 1. 安装基础环境 参考 modelscope的Flux.1-dev页面 2. 使用tongyi写提示词 帮我用英文写3个,文生图片1024*1024的提示词,准备用flux.dev生成用 [pic03] 3. 运行代码 4090D满载运行, 1min左…

PHP7+MySQL5.6 雪里开简易预约制访客管理系统V1.0

# PHP7MySQL5.6 雪里开简易预约制访客管理系统 V1.0 ## 简介 本系统是一个基于PHP7和MySQL5.6的封闭校区访客管理系统,用于管理学生访客的申请、核销流程。 导入的账号预先提交访客信息(预约制),无需审核,访客提交匿名制访客码给门卫登记放行…

【深度学习:进阶篇】--2.4.BN与神经网络调优

学习目标 目标 知道常用的一些神经网络超参数知道BN层的意义以及数学原理 应用 无 目录 学习目标 1.神经网络调优 1.1.调参技巧 1.2.运行 2.批标准化(Batch Normalization) 2.1.标准化公式 2.2.为什么可以优化简单 2.3.BN总结 1.神经网络调优 …

CMake指令: add_sub_directory以及工作流程

目录 1.简介 2.工作流程 3.示例场景 4.最佳实践 5.注意事项 6.总结 相关链接 1.简介 add_subdirectory 是 CMake 中用于添加子目录参与构建的命令,允许将项目拆分为多个模块或子项目,实现代码的模块化管理。 基本语法: add_subdirect…

【C++ 】智能指针:内存管理的 “自动导航仪”

目录 一、引入 二、智能指针的两大特性: 1、RAII 特点: 好处: 2、行为像指针 三、智能指针起初的缺陷:拷贝问题 四、几种智能指针的介绍。 1、C98出现的智能指针——auto_ptr auto_ptr解决上述拷贝构造的问题&#xff1a…

Java多线程实现之线程池详解

Java多线程实现之线程池详解 一、线程池的基本概念1.1 为什么需要线程池1.2 线程池的核心思想 二、Java线程池的实现2.1 Executor框架2.2 ThreadPoolExecutor构造参数 三、常见线程池类型3.1 FixedThreadPool3.2 CachedThreadPool3.3 SingleThreadExecutor3.4 ScheduledThreadP…

解码美元-黄金负相关:LSTM-Attention因果发现与黄金反弹推演

摘要:本文采用时间序列分析框架与自然语言处理(NLP)技术,对黄金与美元指数的负相关关系进行量化拆解。通过构建包含宏观经济因子、市场情绪指标及地缘风险的三维分析模型,揭示当前贵金属市场的核心驱动逻辑&#xff0c…