DukeDuke
主页
文档转换
关于我们
主页
文档转换
关于我们
  • Redis

    • Redis简介
    • Redis(单机)安装
    • Redis配置
    • Redis数据结构
    • RDB、AOF 和混合持久化机制
    • Redis内存管理
    • Redis缓存一致性
    • Redis缓存穿透
    • Redis缓存击穿
    • Redis缓存雪崩
    • Redis Lua脚本
    • Redis主从复制
    • Redis哨兵模式
    • Redis集群
    • Redis数据分片
    • Redis CPU使用率过高
    • Redis面试题
  • MySQL

    • MySQL简介
    • MySQL安装
    • MySQL配置
    • MYSQL日常维护
    • MYSQL优化-慢查询
    • MYSQL优化-索引
    • MYSQL数据库设计规范

MySQL 配置及常见问题

1. 基础配置

1.1 配置文件位置

  • Windows: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
  • Linux: /etc/my.cnf 或 /etc/mysql/my.cnf

1.2 重要配置参数

[mysqld]
# 基础配置
port = 3306
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock

# 内存配置
innodb_buffer_pool_size = 4G
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M

# 连接配置
max_connections = 1000
max_allowed_packet = 16M
wait_timeout = 28800

# 性能配置
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000

2. 常见问题及解决方案

2.1 连接数过多

问题描述:出现 "Too many connections" 错误

解决方案:

  1. 增加最大连接数:
SET GLOBAL max_connections = 2000;
  1. 检查并关闭空闲连接:
SHOW PROCESSLIST;
KILL [connection_id];

2.2 内存使用过高

问题描述:服务器内存占用过高

解决方案:

  1. 调整 InnoDB 缓冲池大小:
innodb_buffer_pool_size = 4G
  1. 优化查询缓存:
query_cache_size = 0
query_cache_type = 0

2.3 慢查询优化

问题描述:查询执行时间过长

解决方案:

  1. 开启慢查询日志:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
  1. 使用 EXPLAIN 分析查询:
EXPLAIN SELECT * FROM table_name WHERE condition;

2.4 字符集问题

问题描述:中文乱码或特殊字符显示异常

解决方案:

  1. 设置正确的字符集:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4

2.5 备份与恢复

常用备份命令:

# 全量备份
mysqldump -u root -p --all-databases > backup.sql

# 单库备份
mysqldump -u root -p database_name > database_backup.sql

# 恢复数据
mysql -u root -p < backup.sql

3. 性能优化建议

3.1 索引优化

  • 合理使用索引
  • 避免过多索引
  • 定期维护索引

3.2 查询优化

  • 避免使用 SELECT *
  • 使用 LIMIT 限制结果集
  • 合理使用 JOIN

3.3 表结构优化

  • 选择合适的数据类型
  • 适当使用分区表
  • 定期进行表维护

4. 监控与维护

4.1 常用监控命令

-- 查看当前连接数
SHOW STATUS LIKE 'Threads_connected';

-- 查看进程列表
SHOW PROCESSLIST;

-- 查看表状态
SHOW TABLE STATUS;

-- 查看系统变量
SHOW VARIABLES;

4.2 定期维护任务

  1. 定期备份数据
  2. 检查并修复表
  3. 优化表结构
  4. 清理日志文件
最近更新:: 2026/4/17 13:21
Contributors: Duke
Prev
MySQL安装
Next
MYSQL日常维护