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

MySQL5.7配置优化

以下是、 MySQL 5.7 完整配置文件 (my.cnf) 示例。这个配置文件适用于使用 GTID 复制、启用二进制日志、优化缓冲区和缓存,并配置慢查询日志等常见场景。

[client]
port=3306
socket=/data/mysql/data/mysql.sock[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=row
binlog-row-image=full
expire_logs_days=7
gtid_mode=on
log-slave-updates=on
enforce-gtid-consistency=trueport=3306
datadir=/data/mysql/data
basedir=/data/mysql
socket=/data/mysql/data/mysql.sock
user=mysqllog-error=/data/mysql/data/mysql-error.log
pid-file=/data/mysql/data/mysqld.pidft_min_word_len=1explicit_defaults_for_timestamp=truesymbolic-links=0lower_case_table_names=1skip-name-resolveinnodb_buffer_pool_size=8G
key_buffer_size=32M
join_buffer_size=2M
sort_buffer_size=4M
read_buffer_size=4M
read_rnd_buffer_size=16M
myisam_sort_buffer_size=128Mquery-cache-size=0
query_cache_type=0tmp_table_size=1G
max_heap_table_size=1Gthread_cache_size=64slow-query-log=on
slow-launch-time=2
slow-query-log-file=/data/mysql/data/mysql-slow.log
log-slow-admin-statementstable-open-cache=1024max-connections=2000
max_connect_errors=5000innodb_flush_log_at_trx_commit=2max_allowed_packet=300Mcollation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4skip-character-set-client-handshakelog_bin_trust_function_creators=1sql-mode="NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
group_concat_max_len=2000innodb_print_all_deadlocks=1replicate-ignore-db=mysql

配置文件说明:

  1. 端口与 socket

    • port=3306socket=/data/mysql/data/mysql.sock 是常见的设置,用于定义 MySQL 服务的监听端口和 socket 文件位置。
  2. 二进制日志与复制

    • 启用了 GTID 模式 (gtid_mode=on)、二进制日志 (log-bin=mysql-bin) 和行格式日志 (binlog_format=row),以支持高效和一致的复制。
  3. 数据目录

    • datadir=/data/mysql/databasedir=/data/mysql 指定了 MySQL 的数据和基本目录。
  4. 错误日志与慢查询日志

    • log-errorslow-query-log 设置确保 MySQL 的运行状态和慢查询记录到指定文件中,方便后续的性能调优。
  5. 缓存与缓冲区

    • 配置了 innodb_buffer_pool_size=8G 和其他缓存参数,以优化内存使用和查询性能。
  6. 连接与线程

    • 限制了最大连接数 max-connections=2000,以防止过多的连接导致服务器资源耗尽。
  7. 字符集

    • 配置了 UTF-8 字符集(utf8mb4),适用于大多数语言环境,并支持全 Unicode 字符集(包括表情符号)。
  8. 跳过 DNS 解析

    • skip-name-resolve 跳过了主机名解析,这可以加速连接建立,特别是在大量并发连接的环境下。
  9. 其他优化

    • innodb_flush_log_at_trx_commit=2 提供了性能与安全性之间的折中。
    • replicate-ignore-db=mysql 避免复制 MySQL 系统数据库中的数据。

适应性与调优:

  1. 内存:根据你的实际内存和工作负载,调整 innodb_buffer_pool_size 和其他内存相关的参数。
  2. 连接数:根据实际使用情况,调整 max-connections,以平衡连接需求和系统资源。
  3. 日志文件:确保你有足够的磁盘空间来存储二进制日志和慢查询日志,必要时调整日志保留时间和日志文件大小。

这个配置文件应该覆盖了大多数常见的 MySQL 5.7 使用场景,并进行了适度的优化。如果有特殊的需求,还可以进一步定制和调整。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Shell教程_在Bash_Shell中使用for循环详解
  • 《Rust避坑入门记》第1章:挖数据竞争大坑的滥用可变性
  • 2.SpringBoot项目pom.xml文件配置
  • ASP.NET Core 入门教学五 集成日志
  • Linux:手搓shell
  • 研究生深度学习入门的十天学习计划------第六天
  • 基于激光雷达的无人机相互避障
  • Linux---FTP文件服务器搭建及实战
  • Unity URP支持多光源阴影
  • mpc_local_planner的编译问题
  • 搭建和使用OnFinality?
  • ML16_转移矩阵、平稳分布和详细平衡条件
  • uniapp插槽用法
  • 【出行计划 / 2】
  • 在SpringMVC中用fmt标签实现国际化/多语言
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • ECS应用管理最佳实践
  • Fabric架构演变之路
  • HomeBrew常规使用教程
  • Laravel核心解读--Facades
  • php的插入排序,通过双层for循环
  • Python爬虫--- 1.3 BS4库的解析器
  • python学习笔记-类对象的信息
  • scala基础语法(二)
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Vue 重置组件到初始状态
  • 闭包,sync使用细节
  • 给github项目添加CI badge
  • 官方解决所有 npm 全局安装权限问题
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 算法---两个栈实现一个队列
  • ​ArcGIS Pro 如何批量删除字段
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #define 用法
  • #宝哥教你#查看jquery绑定的事件函数
  • $(function(){})与(function($){....})(jQuery)的区别
  • (20)docke容器
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二十四)Flask之flask-session组件
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)大型网站的系统架构
  • .NET Core 中的路径问题
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.