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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ascarl2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值