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

mysql常见的一些配置项

MySQL 有许多配置选项,可以用来调整其行为以满足特定的需求。以下是一些常见的配置选项,除了大小写敏感之外,这些配置选项也经常被调整:

1. 字符集和排序规则

  • character_set_server: 设置服务器的默认字符集。
  • collation_server: 设置服务器的默认排序规则。
  • character_set_client: 设置客户端发送给服务器的字符集。
  • character_set_connection: 设置连接层的字符集。
  • character_set_results: 设置结果集的字符集。

2. 缓冲区和缓存

  • innodb_buffer_pool_size: InnoDB 缓冲池的大小,用于缓存数据和索引页。
  • query_cache_size: 查询缓存的大小,用于缓存 SELECT 查询的结果。
  • key_buffer_size: MyISAM 表的键缓冲区大小。
  • sort_buffer_size: 为每个需要进行排序的线程分配的缓冲区大小。
  • read_buffer_sizeread_rnd_buffer_size: 用于全表扫描和排序扫描的缓冲区大小。

3. 日志和恢复

  • log_bin: 启用二进制日志,用于复制和恢复。
  • binlog_format: 二进制日志格式,可以是 STATEMENT, ROW, 或 MIXED
  • expire_logs_days: 二进制日志自动删除的时间(天数)。
  • innodb_log_file_size: InnoDB 事务日志文件的大小。
  • innodb_flush_log_at_trx_commit: 控制事务提交时日志刷新的行为。

4. 连接和线程

  • max_connections: 允许的最大并发连接数。
  • thread_cache_size: 线程缓存的大小,用于快速响应新连接。
  • wait_timeout: 服务器关闭非交互连接之前等待活动的秒数。
  • interactive_timeout: 服务器关闭交互连接之前等待活动的秒数。

5. 性能优化

  • skip_name_resolve: 禁用 DNS 解析,提高连接速度。
  • table_open_cache: 打开表的缓存大小。
  • tmp_table_size: 内存中临时表的最大大小。
  • max_heap_table_size: 内存表的最大大小。
  • join_buffer_size: 用于全连接操作的缓冲区大小。

6. 安全性

  • secure-file-priv: 限制 LOAD DATA 和 SELECT … INTO OUTFILE 操作的目录。
  • local-infile: 控制是否允许客户端使用 LOAD DATA LOCAL 语句。
  • old_passwords: 控制是否使用旧的密码哈希算法。

7. 存储引擎

  • default_storage_engine: 默认的存储引擎,例如 InnoDBMyISAM
  • innodb_file_per_table: 每个 InnoDB 表使用单独的文件。

8. 其他

  • lower_case_table_names: 控制表名是否转换为小写(Windows 上默认为 1,Linux 上默认为 0)。
  • datadir: 数据文件的存储目录。
  • socket: 本地客户端连接使用的 Unix 域套接字文件。
  • port: MySQL 服务器监听的 TCP/IP 端口号。

配置文件

这些配置选项通常在 MySQL 的配置文件 my.cnfmy.ini 中设置。配置文件的位置可能因操作系统和安装方式而异,常见的位置包括:

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • /etc/mysql/mysql.conf.d/mysqld.cnf
  • C:\ProgramData\MySQL\MySQL Server X.X\my.ini (Windows)

示例配置

以下是一个简单的 my.cnf 示例,展示了如何设置一些常用的配置选项:

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

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

# 缓冲区和缓存
innodb_buffer_pool_size=1G
query_cache_size=0
key_buffer_size=16M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=8M

# 日志和恢复
log_bin=mysql-bin
binlog_format=row
expire_logs_days=7
innodb_log_file_size=512M
innodb_flush_log_at_trx_commit=1

# 连接和线程
max_connections=150
thread_cache_size=10
wait_timeout=28800
interactive_timeout=28800

# 性能优化
skip_name_resolve=ON
table_open_cache=2000
tmp_table_size=16M
max_heap_table_size=16M
join_buffer_size=2M

# 安全性
secure-file-priv=/var/lib/mysql-files
local-infile=0

# 存储引擎
default_storage_engine=InnoDB
innodb_file_per_table=ON

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

相关文章:

  • Tomcat(4) Tomcat支持哪些版本的Java?
  • 让Apache正确处理不同编码的文件避免中文乱码
  • OCR、语音识别与信息抽取:免费开源的AI平台在医疗领域的创新应用
  • 查看 linux ubuntu 分区 和 挂载 情况 lsblk
  • 希尔排序算法
  • 深入理解网络协议:OSPF、VLAN、NAT与ACL详解
  • C#-拓展方法
  • iOS开发 swift系列---一个视图数据修改后,如何刷新另外一个视图
  • 多机器人图优化:2024ICARA开源
  • 服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例
  • 火山引擎云服务docker 安装
  • SpringBoot开发——8种读取配置文件信息的方式
  • 基于MPPT最大功率跟踪的光伏发电蓄电池控制系统simulink建模与仿真
  • 【ArcGISPro】单次将自己建立的工具箱添加至Arcpy中
  • C字符串 | 字符串处理函数 | 使用 | 原理 | 实现
  • MySQL limit offset分页查询可能存在的问题
  • FPGA高速设计之Aurora64B/66B的应用与不足的修正
  • 简单介绍一下mvvm mvc mvp以及区别、历史
  • Recyclerview缓存原理
  • Map函数与vector<pair<int,int>>函数的使用方法
  • 将指令输入环境环境变量,用定义的字符串方便快捷调用
  • SpringBoot框架下的资产管理自动化
  • 【ubuntu18.04】使用U盘制作ubuntu18.04启动盘操作说明
  • Node.js——文件上传
  • Sophos | 网络安全
  • Cesium使用flyToBoundingSphere实现倾斜相机视角观察物体