it编程 > 数据库 > Mysql

MySQL的配置文件详解及实例代码

30人参与 2025-08-18 Mysql

前言

mysql 的配置文件(通常是 my.cnfmy.ini)是控制 mysql 服务器行为的重要文件。不同操作系统的配置文件位置可能不同:

一、配置文件结构

配置文件由多个 section(分组) 组成,每个 section 对应不同的组件或客户端工具。常见 section 如下:

1.[mysqld]

mysql 服务器核心配置(必填)。

[mysqld]
# 基础配置
port = 3306              # 监听端口(默认3306)
datadir = /var/lib/mysql # 数据存储目录
socket = /tmp/mysql.sock # unix socket 文件路径
user = mysql             # 运行mysql的系统用户

# 字符集配置
character-set-server = utf8mb4  # 服务器默认字符集
collation-server = utf8mb4_unicode_ci  # 默认排序规则

# 日志配置
log-error = /var/log/mysql/error.log  # 错误日志路径
slow_query_log = 1                    # 开启慢查询日志
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2                   # 慢查询阈值(秒)

# 内存与性能
innodb_buffer_pool_size = 1g          # innodb缓冲池大小(建议设为物理内存的50-80%)
innodb_log_file_size = 256m           # innodb日志文件大小
max_connections = 200                 # 最大并发连接数
thread_cache_size = 10                # 线程缓存数量

# 安全相关
skip_name_resolve = 1                 # 禁用dns反向解析(提升连接速度)
secure_file_priv = /var/lib/mysql-files  # 限制文件导入导出路径

2.[client]

客户端工具(如 mysql 命令行)的默认配置。

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4

3.[mysql]

mysql 命令行客户端的配置。

[mysql]
auto-rehash           # 启用自动补全
prompt = "\\u@\\h:\\d> "  # 自定义提示符(用户@主机:数据库)

4.[mysqldump]

备份工具 mysqldump 的配置。

[mysqldump]
quick                  # 逐行导出数据(减少内存占用)
max_allowed_packet = 256m  # 最大数据包大小

二、关键配置项详解

1.内存与性能优化

2.连接管理

3.二进制日志(主从复制)

server-id = 1                   # 服务器唯一id(主从不能重复)
log_bin = /var/log/mysql/mysql-bin.log  # 开启二进制日志
expire_logs_days = 7            # 日志保留天数
binlog_format = row             # 推荐使用row格式(数据一致性更强)

4.查询缓存(mysql 8.0已废弃)

query_cache_type = 0            # 关闭查询缓存(8.0已移除该功能)

5.其他重要配置

三、配置文件示例

[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
port = 3306

# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# innodb配置
innodb_buffer_pool_size = 2g
innodb_log_file_size = 512m
innodb_flush_log_at_trx_commit = 2

# 连接管理
max_connections = 300
thread_cache_size = 20
wait_timeout = 600

# 日志
log-error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

# 安全
skip_name_resolve = 1
secure_file_priv = /var/lib/mysql-files

[client]
default-character-set = utf8mb4

四、注意事项

  1. 修改配置后需重启 mysql
    sudo systemctl restart mysql   # linux
    
  2. 验证配置
    通过 show variables like 'variable_name'; 确认配置生效。
  3. 版本差异
    mysql 不同版本(如 5.7 vs 8.0)的默认配置或参数可能不同,需参考官方文档。

通过合理配置,可以显著优化 mysql 的性能和稳定性!

到此这篇关于mysql配置文件详解的文章就介绍到这了,更多相关mysql配置文件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

MySQL中查询和展示LONGBLOB类型数据的技巧总结

08-18

从基础到实战MySQL定时任务详解

08-18

Mysql创建表以及数据库crud语句举例详细讲解

08-18

MySQL怎么实现原子性的流程详解(以UPDATE为例)

08-18

Mysql之DELETE操作对应的undo日志方式

08-18

MySQL Join使用之大表关联小表及小表关联大表

08-18

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论