当前位置: 首页 > news >正文

MySQL 8 配置文件详解与最佳实践

MySQL 8 是一款强大的关系型数据库管理系统,通过适当的配置文件设置,可以充分发挥其性能潜力。在这篇博客中,我们将深入探究 MySQL 8 常用的配置文件,并提供一些建议,帮助您优化数据库性能。

配置文件概览

在 MySQL 中,配置文件是控制数据库行为的关键。以下是一个基本的 MySQL 8 配置文件示例,其中包含了一些关键的设置:


[mysqld]
# 基本设置
port = 3306
basedir=D:\\Program Files\\MySQL\\mysql-8.0.19-winx64 # 这里替换成你自己的解压目录即可
datadir=D:\\Program Files\\MySQL\\mysql-8.0.19-winx64\\data   
# 存储数据的文件
default-storage-engine = INNODB
# default_authentication_plugin = mysql_native_password# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci# 连接和线程设置
max_connections = 200
max_connect_errors = 10
wait_timeout = 28800
interactive_timeout = 28800
max_allowed_packet = 64M# 缓冲池设置
key_buffer_size = 32M
innodb_buffer_pool_size = 512M# 日志设置
log_error = D:\\Program Files\\MySQL\\mysql-8.0.19-winx64\\log\\error.log
slow_query_log = 1
slow_query_log_file = D:\\Program Files\\MySQL\\mysql-8.0.19-winx64\\log\\slow-query.log
long_query_time = 1
log_queries_not_using_indexes = 1
innodb_log_file_size = 64M# 安全设置
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION# 身份验证插件
default_authentication_plugin = caching_sha2_password
# 这插件提供了更安全的密码存储和身份验证机制,但是,它可能与一些老的 MySQL 客户端不兼容# 启用查询缓存(不建议在 MySQL 8 中使用,已被弃用)
# query_cache_type = 1
# query_cache_size = 16M[mysql]
# 客户端设置
default-character-set = utf8mb4[client]
# 客户端设置
port = 3306
default-character-set = utf8mb4

关键配置项解析

  1. 基本设置:

    • port:MySQL 服务器监听的端口。
    • basedir:MySQL 安装的基本目录。
    • datadir:MySQL 存储数据的目录。
  2. 字符集设置:

    • character-set-server:服务器使用的字符集。
    • collation-server:字符集的校对规则。
  3. 连接和线程设置:

    • max_connections:允许的最大并发连接数。
    • max_connect_errors:在拒绝连接之前允许的最大错误数。
    • wait_timeoutinteractive_timeout:等待连接的超时时间。
    • max_allowed_packet:单个查询包的最大大小。
  4. 缓冲池设置:

    • key_buffer_size:用于 MyISAM 索引的缓冲区大小。
    • innodb_buffer_pool_size:InnoDB 缓冲池大小。
  5. 日志设置:

    • log_error:错误日志的文件路径。
    • slow_query_log:是否启用慢查询日志。
    • slow_query_log_file:慢查询日志文件的路径。
    • long_query_time:定义慢查询的时间阈值。
    • log_queries_not_using_indexes:记录未使用索引的查询。
  6. 安全设置:

    • sql_mode:SQL 模式,用于控制 SQL 语句的语法和数据验证。
  7. 身份验证插件:

    • default_authentication_plugin:默认身份验证插件。
  8. 客户端设置:

    • default-character-set:客户端默认字符集。
    • port:客户端连接的端口。

最佳实践

  • 路径分隔符: 在 Windows 下,路径分隔符使用双斜杠 \\ 或单斜杠 /。(Linux下使用 \ 例如/home/mysql/data... )
  • 适当调整缓冲池大小: 根据系统内存,调整 innodb_buffer_pool_size 的大小,通常设置为物理内存的 50%-75%(我这个是本地测试环境 设置的不大)。
  • 慢查询优化: 启用慢查询日志 (slow_query_log) 可以帮助您识别性能问题,但要谨慎设置 long_query_time

通过理解这些配置项和最佳实践,可以更好地优化 MySQL 8 数据库,提高性能和安全性。记得在调整配置之前备份数据库,以免造成不可逆的影响。

相关文章:

MySQL 8 配置文件详解与最佳实践

MySQL 8 是一款强大的关系型数据库管理系统,通过适当的配置文件设置,可以充分发挥其性能潜力。在这篇博客中,我们将深入探究 MySQL 8 常用的配置文件,并提供一些建议,帮助您优化数据库性能。 配置文件概览 在 MySQL …...

K8s client go 创建CRD的informer

背景 需要监听K8s中CRD资源的变动, 做出相应的处理, 需要针对 CRD资源建立informer 实现 dynamicClient 是 创建的K8s的client, 这里使用的是 Unstructured 接収的CRD的结果, 加工的时候使用了convertUnstructuredProject 加工了一下, convertUnstructuredProject 实现下面提…...

使用jmx_exporter监控Kafka

prometheus 监控 kafka 常见的有两种开源方案,一种是传统的部署 exporter 的方式,一种是通过 jmx 配置监控,本文将采用第二种方式进行配置。 项目地址: kafka_exporter:https://github.com/danielqsj/kafka_exporterjmx_exporter:https://github.com/prometheus/jmx_expo…...

什么是网络爬虫技术?它的重要用途有哪些?

网络爬虫(Web Crawler)是一种自动化的网页浏览程序,能够根据一定的规则和算法,从互联网上抓取和收集数据。网络爬虫技术是随着互联网的发展而逐渐成熟的一种技术,它在搜索引擎、数据挖掘、信息处理等领域发挥着越来越重…...

Android MemoryFile 共享内存

应用场景: 跨进程传输大数据,如文件、图片等; 技术选型: 共享内存–MemoryFile; 优点: 1. 共享内存没有传输大小限制,所以和应用总的分配内存一样(512MB)&#xff1…...

【lua】记录函数名和参数(为了延后执行)

需求背景 一个服务缓存玩家信息到对象里,通过对象的函数定时同步到数据库中,如果玩家掉线 清空对象,但是后续步骤导致对象数据需要变更,对象不存在, 就不方便变更了,怎么处理? 方案思考 1.临…...

2023.11.22 数据仓库2-维度建模

目录 1.数仓建设方案 2.数仓结构图,项目架构图 2.1项目架构图 2.2数仓结构图 3.建模设计 4.维度建模 什么是事实表: 什么是维度表: 数据发展模式y以及对应的模型 5.数仓建设规范 数据库划分规范 表命名规范 表字段类型规范 1.数仓建设方案 ODS: 源数据层(临时存储层) 贴…...

pycharm 创建的django目录和命令行创建的django再使用pycharm打开的目录对比截图 及相关

pytcharm创建django的项目 命令行创建的django 命令行创建项目时 不带路径时 (.venv) D:\gbCode>django-admin startproject gbCode 命令行创建项目时 带路径时 -- 所以如果有目录就指定路径好 (.venv) D:\gbCode>django-admin startproject gbCode d:\gbCode\...

【Pytorch】Visualization of Fature Maps(2)

学习参考来自 使用CNN在MNIST上实现简单的攻击样本https://github.com/wmn7/ML_Practice/blob/master/2019_06_03/CNN_MNIST%E5%8F%AF%E8%A7%86%E5%8C%96.ipynb 文章目录 在 MNIST 上实现简单的攻击样本1 训练一个数字分类网络2 控制输出的概率, 看输入是什么3 让正确的图片分…...

【目标检测】保姆级别教程从零开始实现基于Yolov8的一次性筷子计数

前言 一,环境配置 一,虚拟环境创建 二,安装资源包 前言 最近事情比较少,无意间刷到群聊里分享的基于百度飞浆平台的一次性筷子检测,感觉很有意思,恰巧自己最近在学习Yolov8,于是看看能不能复…...

笔记:内网渗透流程之信息收集

信息收集 首先,收集目标内网的信息,包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息,以及利用公开的信息源进行信息搜集。 本机信息收集 查看系统配置信息 查看系统详细信息&#xf…...

【2023.11.23】JDBC基本连接语法学习➹

1.导入jar包依赖:mysql-connector-java-8.0.27.jar 2.连接数据库! 3.无法解析类->导入java.sql.*,(将项目方言改为Mysql) JDBC,启动!! public class Main {public static voi…...

ubuntu 安装python3.13

列出 /usr/bin/ 目录下所有以 python 开头的文件和目录 ls /usr/bin/python* 添加Python软件源。您可以通过以下命令将Python的软件源添加到您的系统中 sudo add-apt-repository ppa:deadsnakes/ppa 然后运行以下命令以更新软件包列表: sudo apt-get update 安…...

OpenCV数据类型及CV_16UC1深度图ros订阅

最近用到深度图,对其数据类型及显示有些迷惑,记笔记于此: 目录 一、cv::Mat 的数据类型及转换方式1. cv::Mat 数据类型2. cv::Mat 数据类型互转2.1 OpenCV数据类型转换的函数2.2 可视化深度图像(CV_16UC1)二、cv::Mat 与 sensor_msgs::msg::Image 互转(基于cv_bridge)1.…...

华清远见嵌入式学习——网络编程——小项目

项目要求&#xff1a; 代码实现&#xff1a; 服务器端&#xff1a; #include <myhead.h>//定义协议包 struct proto {char type;char name[20];char text[128]; };int main(int argc, const char *argv[]) {//判断从终端输入的字符串的个数if(argc ! 3){printf("…...

分库分表、分布式数据库、MPP

分库分表、分布式数据库、MPP的区别吗&#xff1f; 一、MySQL分库分表和MySQL分布式集群在性能方面各有优劣&#xff0c;具体取决于应用场景和需求。 MySQL分库分表&#xff1a; 在分库分表的场景下&#xff0c;可以将负载分散到多个数据库实例上&#xff0c;从而提高整体性能…...

浅学指针(2)数组函数传值调用

系列文章目录 文章目录 系列文章目录前言1. 指针的使⽤和传址调⽤结论&#xff1a;实参传递给形参的时候&#xff0c;形参会单独创建⼀份临时空间来接收实参&#xff0c;对形参的修改不影响实 参。那么这个时候&#xff0c;就要搬出指针大哥&#xff0c;在main函数中将a和b的地…...

C++之unordered_map/set的使用

前面我们已经学习了STL中底层为红黑树结构的一系列关联式容器——set/multiset 和 map/multimap(C98). unordered系列关联式容器 在C98中, STL提供了底层为红黑树结构的一系列关联式容器, 在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次, 当树中的节点非常多时,…...

docker打包chatpdf(自写)

docker打包上传 docker build -t kitelff/chatpdf:v0.1 .##修改镜像名字 docker tag c2c1a0eb4e08 kitelff/chatpdf:v0.1## push docker push kitelff/chatpdf:v0.1上传文件&#xff0c;测试效果...

shell基础

一.Shell脚本编程概述 1.基本概念 将要执行的命令按顺序保存到一个文本文件&#xff1b; 给该文件可执行权限&#xff1b; 可结合各种Shell控制语句以完成更复杂的操作。 2.作用 Linux系统中的Shell是一个特殊的应用程序&#xff0c;它介于操作系统内核与用户之间&#x…...

空间机器人线性导轨测试台设计与动力学验证

1. 线性导轨测试台设计背景与核心挑战在轨服务、组装与制造&#xff08;ISAM&#xff09;技术正在彻底改变空间资产的应用模式。想象一下&#xff0c;未来卫星不再是一次性使用的设备&#xff0c;而是可以像汽车一样进行维修、升级甚至重构的模块化平台。这种变革的核心在于空间…...

Bullet未来路线图:2024年新特性和性能改进终极指南

Bullet未来路线图&#xff1a;2024年新特性和性能改进终极指南 【免费下载链接】bullet help to kill N1 queries and unused eager loading 项目地址: https://gitcode.com/gh_mirrors/bu/bullet Bullet作为一款强大的N1查询和未使用预加载检测工具&#xff0c;一直致力…...

终极指南:3个真实场景揭秘AutoGPT如何让AI应用开发效率提升10倍

终极指南&#xff1a;3个真实场景揭秘AutoGPT如何让AI应用开发效率提升10倍 【免费下载链接】AutoGPT AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters. 项目地…...

别再让C盘爆红了!手把手教你将Anaconda虚拟环境迁移到其他盘(附权限问题解决)

彻底解放C盘空间&#xff1a;Anaconda虚拟环境迁移全攻略与深度优化 当你的C盘开始频繁亮起红色警告&#xff0c;而Anaconda的虚拟环境占据了数十GB空间时&#xff0c;是时候考虑将它们迁移到其他驱动器了。这不仅是一个简单的文件移动操作&#xff0c;更涉及到环境配置、权限管…...

告别卡顿!用Arduino+GRBL玩转激光雕刻,详解速度前瞻如何提升雕刻精度

告别卡顿&#xff01;用ArduinoGRBL玩转激光雕刻&#xff0c;详解速度前瞻如何提升雕刻精度 激光雕刻机在DIY圈子里越来越火&#xff0c;但很多玩家都遇到过这样的尴尬&#xff1a;雕刻直线时光滑流畅&#xff0c;一到拐角就出现烧焦、停顿甚至错位。上周我的工作室接了个定制木…...

深度解析开源工具:如何高效实现《赛博朋克2077》存档编辑与数据修改

深度解析开源工具&#xff1a;如何高效实现《赛博朋克2077》存档编辑与数据修改 【免费下载链接】CyberpunkSaveEditor A tool to edit Cyberpunk 2077 sav.dat files 项目地址: https://gitcode.com/gh_mirrors/cy/CyberpunkSaveEditor CyberpunkSaveEditor 是一款针对…...

从草图到总装:用CREO骨架模型(Skeleton)搞定复杂产品TOP-DOWN设计全流程

从草图到总装&#xff1a;用CREO骨架模型&#xff08;Skeleton&#xff09;搞定复杂产品TOP-DOWN设计全流程 在工业设计领域&#xff0c;复杂产品的开发往往面临一个核心挑战&#xff1a;如何确保数十甚至上百个零部件能够精准配合&#xff0c;同时保持设计变更的高效同步。传统…...

【仅限前500名开发者】2026 C安全插件离线安装包+配置模板(含SEI CERT C v2.4映射表)

https://intelliparadigm.com 第一章&#xff1a;现代 C 语言内存安全编码规范 2026 插件下载与安装 为应对缓冲区溢出、悬垂指针和未初始化内存等经典 C 语言安全隐患&#xff0c;C Safety Initiative&#xff08;CSI&#xff09;于 2025 年底正式发布《现代 C 语言内存安全编…...

Vivado里SelectIO的LVDS参数怎么设?手把手教你搞定7系列和UltraScale的电压匹配与终端电阻

Vivado中LVDS接口配置实战&#xff1a;7系列与UltraScale的电压匹配与终端电阻详解 在FPGA的高速接口设计中&#xff0c;LVDS&#xff08;低压差分信号&#xff09;因其出色的抗干扰能力和低功耗特性&#xff0c;成为跨板卡信号传输的首选方案。但许多工程师在使用Vivado配置Se…...

python 项目自动生成requirements.txt文件

python 项目自动生成requirements.txt文件本文介绍了如何在Python项目中使用pip freeze和pipreqs工具生成requirements.txt文件&#xff0c;包括基本操作步骤和两种方法的对比&#xff0c;适用于开发者管理项目依赖。requirements.txt文件格式&#xff1a;一键获取完整项目代码…...