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

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=true

port=3306
datadir=/data/mysql/data
basedir=/data/mysql
socket=/data/mysql/data/mysql.sock
user=mysql

log-error=/data/mysql/data/mysql-error.log
pid-file=/data/mysql/data/mysqld.pid

ft_min_word_len=1

explicit_defaults_for_timestamp=true

symbolic-links=0

lower_case_table_names=1

skip-name-resolve

innodb_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=128M

query-cache-size=0
query_cache_type=0

tmp_table_size=1G
max_heap_table_size=1G

thread_cache_size=64

slow-query-log=on
slow-launch-time=2
slow-query-log-file=/data/mysql/data/mysql-slow.log
log-slow-admin-statements

table-open-cache=1024

max-connections=2000
max_connect_errors=5000

innodb_flush_log_at_trx_commit=2

max_allowed_packet=300M

collation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4

skip-character-set-client-handshake

log_bin_trust_function_creators=1

sql-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=2000

innodb_print_all_deadlocks=1

replicate-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 使用场景,并进行了适度的优化。如果有特殊的需求,还可以进一步定制和调整。


http://www.kler.cn/a/288871.html

相关文章:

  • MyBatis的插件运行原理,与如何编写一个插件
  • Linux -- 互斥的底层实现
  • 使用Excel制作通达信自定义“序列数据“
  • 使用helm安装canal-server和canal-admin
  • 数据结构之栈,队列,树
  • 华为管理变革之道:管理制度创新
  • h5适配iOS——window.open失效
  • 搭建pypi私有仓库(局域网内)出现的一些问题及解决方法
  • 【数据库|第11期】深入掌握 SQL Server、Access 与 SQLite 中的 `UNION` 与 `UNION ALL`:从理论到实践
  • windows系统安装配置Apache Maven
  • React16新手教程记录
  • org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
  • 晋升路上的梦想之光,社科院与杜兰大学金融管理硕士助力你前行
  • 数造科技荣登“科创杯”领奖台,开启数据驱动新篇章!
  • HarmonyOS实战开发:NAPI接口规范开发
  • Centos根目录扩容Docker分区扩容最佳实践
  • 【网络安全】Collabora在线存储型XSS(CVE-2024-29182)+代码审计
  • OpenCV 图像处理应用实战算法列表汇总(长期更新)
  • Redis安装+常用命令合集大全+Redis Desktop Manager
  • 黑悟空!一区预定!原创首发!SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测
  • FPGA速度优化
  • sickos 靶机渗透(wolf cms 渗透,squid 代理)
  • 【软件造价咨询】AI大模型能不能替代软件工程造价师完成软件造价?
  • RabbitMQ和Kafka的区别
  • python-A-B数对
  • WPF MVVM如何在ViewModel直接操作控件对象