以下是 MySQL 配置文件 my.ini 中常见的配置参数及其详细解释。这些参数可以根据需要进行调整,以优化 MySQL 数据库的性能和行为。
# 基本设置
port = 3306 # MySQL 服务器监听的端口
basedir = /usr/local/mysql # MySQL 安装目录
datadir = /var/lib/mysql # MySQL 数据目录
socket = /var/lib/mysql/mysql.sock # 套接字文件路径
pid-file = /var/run/mysqld/mysqld.pid # PID 文件路径
user = mysql # 运行 MySQL 服务器的用户
# 日志相关设置
log-error = /var/log/mysql/error.log # 错误日志文件路径
general_log_file = /var/log/mysql/general.log # 常规查询日志文件路径
general_log = 1 # 启用常规查询日志
slow_query_log_file = /var/log/mysql/slow.log # 慢查询日志文件路径
slow_query_log = 1 # 启用慢查询日志
long_query_time = 2 # 慢查询阈值(秒)
# 网络设置
bind-address = 0.0.0.0 # 监听的 IP 地址
max_connections = 151 # 最大连接数
max_connect_errors = 100 # 允许的最大连接错误数
# 缓冲和缓存设置
key_buffer_size = 16M # 用于 MyISAM 索引的缓冲区大小
max_allowed_packet = 64M # 允许的最大数据包大小
table_open_cache = 2000 # 表缓存的数量
sort_buffer_size = 4M # 排序缓冲区大小
read_buffer_size = 2M # 读缓冲区大小
read_rnd_buffer_size = 8M # 随机读缓冲区大小
query_cache_size = 16M # 查询缓存大小
tmp_table_size = 32M # 临时表大小
thread_cache_size = 8 # 缓存的线程数量
# InnoDB 引擎设置
innodb_buffer_pool_size = 256M # InnoDB 缓冲池大小
innodb_log_file_size = 64M # InnoDB 日志文件大小
innodb_flush_log_at_trx_commit = 1 # InnoDB 日志刷新策略
innodb_lock_wait_timeout = 50 # InnoDB 锁等待超时时间
# 复制相关设置(用于主从复制)
server-id = 1 # 服务器唯一标识
log_bin = /var/log/mysql/mysql-bin.log # 二进制日志文件路径
binlog_format = row # 二进制日志格式
expire_logs_days = 10 # 二进制日志自动删除的天数
relay_log = /var/log/mysql/mysql-relay-bin.log # 中继日志文件路径
log_slave_updates = 1 # 从服务器记录二进制日志
# 安全设置
secure-file-priv = "" # 用于导入导出操作的目录限制
# 性能模式设置
performance_schema = 1 # 启用性能模式
客户端配置
[client]
port = 3306 # 客户端连接的端口号
socket = /var/lib/mysql/mysql.sock # 客户端连接的套接字文件
[mysql]
no-auto-rehash # 禁用自动补全功能
mysqld_safe 设置
[mysqld_safe]
log-error = /var/log/mysql/mysqld_safe.log # mysqld_safe 日志文件
pid-file = /var/run/mysqld/mysqld.pid # PID 文件路径
其他配置
MyISAM 引擎设置
myisam_max_sort_file_size = 100G # MyISAM 索引排序的最大文件大小
myisam_sort_buffer_size = 8M # MyISAM 索引排序缓冲区大小
连接和线程管理
interactive_timeout = 28800 # 交互连接的超时时间(秒)
wait_timeout = 28800 # 非交互连接的超时时间(秒)
日志设置
log_bin_trust_function_creators = 1 # 允许非安全模式下创建函数和过程
复制设置
replicate-do-db = exampledb # 要复制的数据库
replicate-ignore-db = ignoredb # 要忽略复制的数据库
字符集设置
character-set-server = utf8mb4 # 服务器的默认字符集
collation-server = utf8mb4_unicode_ci # 服务器的默认排序规则
高级配置
内存管理
innodb_buffer_pool_instances = 1 # InnoDB 缓冲池实例数量
innodb_buffer_pool_chunk_size = 128M # InnoDB 缓冲池块大小
Binlog 设置
sync_binlog = 1 # 每次事务提交时同步二进制日志
临时表设置
tmp_table_size = 64M # 内存中临时表的最大大小
max_heap_table_size = 64M # 用户可以创建的内存表的最大大小
性能模式
performance_schema = ON # 启用性能模式
锁等待超时
lock_wait_timeout = 31536000 # 锁等待超时时间`
自定义设置
innodb_file_per_table = 1 # 每个表使用独立的表空间
innodb_stats_on_metadata = 0 # 禁用元数据统计
innodb_flush_method = O_DIRECT # 刷新方法设置为直接 I/O
innodb_log_buffer_size = 8M # InnoDB 日志缓冲区大小
innodb_thread_concurrency = 0 # InnoDB 线程并发度
innodb_autoinc_lock_mode = 2 # 自增锁模式
innodb_io_capacity = 200 # InnoDB I/O 容量
这些参数涵盖了 MySQL 服务器的各个方面,可以根据具体需求进行调整,以优化性能、安全性和资源利用率。需要注意的是,修改配置文件后需要重启 MySQL 服务器以使更改生效。在调整参数时,建议逐步修改并测试,以确保不会对系统稳定性和性能产生负面影响。