MySQL配置文件简介

备注:测试数据库版本为MySQL 8.0

这个blog我们来聊聊MySQL的配置文件以及常用的参数

文章目录

  • 一.[client]
  • 二.[mysqld]
  • 三.[mysql]
  • 四.[mysqld_safe]

MySQL配置文件

-- windows
my.ini
-- linux
my.cnf
默认路径/etc/my.cnf

Linux下的配置文件my.cnf,与Oracle参数文件类似,MySQL启动的时候,会读取my.cnf文件里面的内容,但凡有一个参数配置格式错误,MySQL启动会报错,需要排查错误日志。

这个blog我们简单的聊聊常见的参数用法。

一.[client]

MySQL客户端应用读取,一般设置连接端口

参数值 参数用途
port = 3306 指定客户端应用连接的端口
socket = path/filename 指定连接socket
default-character-set=utf8mb4 指定客户端应用连接的字符集

二.[mysqld]

参数值 类别 参数用途
basedir = path 基础设置 指定安装目录
datadir = path 基础设置 指定数据文件目录
tmpdir = path 基础设置 指定临时文件目录
pid-file = path/filename 基础设置 为mysqld程序指定一个存放进程ID的文件(仅适用于unix/linux)
socket = path/filename 基础设置 socket文件是客户程序与服务器之间通信的文件(仅适用于unix/linux)
server-id = 1 基础设置 表示本机的序号为1,唯一,主从复制的时候需要使用
tmp_table_size = 512M 基础设置 临时表最大大小,超过该值,数据存放磁盘
取值范围:1024- 18446744073709551615
默认值:16777216
max_heap_table_size = 512M 基础设置 独立的内存表所允许的最大容量,防止内存耗尽
取值范围:16384-1844674407370954752
默认值:16777216
********************************** ****************** ************************************
********************************** ****************** ************************************
max_connections = 1000 系统资源相关 MySQL允许的最大连接进程数
取值范围:1-100000
默认值:151
max_connect_errors = 1000 系统资源相关 用户发起的连接 error 超过该数值,则该用户的下次连接将被阻塞,直到管理员执行 flush hosts ;或重启服务器
取值范围:1-100000
默认值:151
open_files_limit = 10240 系统资源相关 MySQL打开的文件描述符限制;
取值范围:0-平台依赖
默认值:5000
connect-timeout = 10 系统资源相关 连接超时最大秒数
取值范围:2-31536000
默认值:10
wait-timeout = 28800 系统资源相关 等待关闭连接的时间,单位秒
取值范围:1-31536000(windows平台 最大值 2147483)
默认值:28800
interactive-timeout = 28800 系统资源相关 关闭连接之前,允许 interactive_timeout(取代了wait_timeout)秒的不活动时间
取值范围:1-无穷大
默认值:28800
slave-net-timeout = 600 系统资源相关 从库超过该时间无法与主库通信,断开连接,单位秒
取值范围:1-无穷大
默认值:60
net_read_timeout = 30 系统资源相关 从服务器读取信息超时时间,单位秒
取值范围:1-无穷大
默认值:30
net_write_timeout = 60 系统资源相关 从服务器写信息超时时间,单位秒
取值范围:1-无穷大
默认值:60
net_retry_count = 10 系统资源相关 读操作中断后允许的重连次数,单位秒
取值范围:1-18446744073709551615
默认值:10
net_buffer_length = 16384 系统资源相关 包消息缓冲区初始化为 net_buffer_length 字节,
取值范围:1024 - 1048576
默认值:16384
max_allowed_packet = 64M 系统资源相关 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小
取值范围:1024 - 1073741824
默认值:67108864
table_open_cache = 512 系统资源相关 所有线程打开表的数量
取值范围:1 - 524288
默认值:4000
thread_stack = 192K 系统资源相关 线程使用的堆大小. 此容量的内存在每次连接时被预留
取值范围:131072 - 18446744073709551615
默认值:286720
thread_cache_size = 20 系统资源相关 我们在 cache 中保留多少线程用于重用
取值范围:0 - 16384
默认值:-1(不指定此值)
********************************** ****************** ************************************
********************************** ****************** ************************************
skip-name-resolve skip相关 禁止MySQL对外部进行 DNS解析,Boolean类型
格式:skip-name-resolve=OFF OR ON
默认值:OFF
skip-name-resolve skip相关 禁止MySQL对外部进行 DNS解,Boolean类型
格式:skip-name-resolve=OFF OR ON
默认值:OFF
skip-symbolic-links skip相关 不能使用连接文件
格式 symbolic-links= OFF OR ON
默认:OFF
skip-external-locking skip相关 不使用系统锁定,要使用 myisamchk,必须关闭服务器 ,避免 MySQL的外部锁定,减少出错几率增强稳定性
格式:skip-external-locking = OFF or ON
默认值:ON
skip-slave-start skip相关 启动 mysql,不启动复制
格式:skip-slave-start = OFF or ON
默认值:OFF
skip-networking skip相关 开启该选项可以彻底关闭 MySQL 的 TCP/IP 连接方式
格式:skip-networking = OFF or ON
默认值:OFF
********************************** ****************** ************************************
********************************** ****************** ************************************
default-time-zone = system default settings 相关 服务器时区
character-set-server = utf8mb4 default settings 相关 服务器字符集
default_storage_engine = InnoDB default settings 相关 默认存储引擎
********************************** ****************** ************************************
********************************** ****************** ************************************
log-bin = filename 日志相关 打开二进制日志功能
log-bin=mysql-bin(也可指定二进制日志生成的路径,如:log-bin=/opt/Data/mysql-bin)
log_slave_updates 日志相关 从库将复制事件写入自己的二进制日志
格式:log_slave_updates = OFF or ON
默认值:ON
log-bin-index = file_name 日志相关 二进制的索引文件名,一般是mysql-bin.index
relay-log = relay-log 日志相关 定义relay_log的位置和名称,如果值为空,则默认位置在数据文件的目录(datadir)
relay_log_index = relay-log.index 日志相关 同relay_log,定义relay_log的位置和名称;一般和relay-log在同一目录
log-error = filename 日志相关 错误日志文件
log_output = FILE 日志相关 参数 log_output 指定了慢查询输出的格式,默认为 FILE
可选值有:TABLE/FILE/NONE
slow_query_log = Boolean 日志相关 指定是否开启慢查询日志
格式:slow_query_log = OFF or ON
默认值:OFF
long-query-time = 1 日志相关 设定慢查询的阀值,超过该值的sql会被记录到慢查询日志 单位:秒 默认值:10
slow_query_log_file = filename 日志相关 慢查询日志存放目录,默认值:host_name-slow.log
log-queries-not-using-indexes 日志相关 如果运行的SQL语句没有使用索引,则mysql数据库同样会将这条SQL语句记录到慢查询日志文件中
格式:log-queries-not-using-indexes = OFF or ON
默认值:OFF
min_examined_row_limit=1000 日志相关 记录那些由于查找了多余1000次而引发的慢查询
取值范围:0-18446744073709551615
log-slow-slave-statements 日志相关 记录由Slave所产生的慢查询
格式:log-slow-slave-statements = OFF or ON
默认值:OFF
general_log 日志相关 将所有到达MySQL Server的SQL语句记录下来
格式:general_log = OFF or ON
默认值:OFF
general_log_file = filename 日志相关 general_log路径,默认值:host_name.log
max_binlog_size = 1G 日志相关 binlog最大值
取值范围:4096-1073741824
默认值:1073741824(1G)
max_relay_log_size = 1G 日志相关 relay log最大值
取值范围:0-1073741824
默认值:0
relay-log-purge = 1 日志相关 是否自动清空不再需要中继日志时。默认值为1(启用)
格式:relay-log-purge = OFF or ON
默认值:ON
expire_logs_days = 30 日志相关 超过 30 天的 binlog 删除
取值范围:0-99
默认值:0
binlog_cache_size = 1M 日志相关 单个事务,binlog cache大小
取值范围:4096-18446744073709551615
默认值:32768(32K)
replicate-wild-ignore-table = mysql.% 日志相关 复制时忽略数据库及表
slave_skip_errors=all 日志相关 定义复制过程中从服务器可以自动跳过的错误号
OFF-list of error codes
all-ddl_exist_errors
默认值:OFF
********************************** ****************** ************************************
********************************** ****************** ************************************
innodb_file_per_table = 1 InnoDB相关 每个表都有自己独立的表空间 Boolean类型
innodb-file-per-table = ON or OFF
默认值:ON
innodb_open_files = 2048 InnoDB相关 限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个
取值范围: 10 - 4294967295
默认值: -1 (不设置这个值)
innodb_buffer_pool_size = 2G InnoDB相关 InnoDB buffer pool的大小,用于缓存表和索引的数据
取值范围: 5242880 - 2**64-1
默认值:134217728
innodb_write_io_threads = 4 InnoDB相关 innodb写进程数
取值范围:1-64
默认值:4
innodb_read_io_threads = 4 InnoDB相关 innodb读进程数
取值范围:1-64
默认值:4
innodb_data_home_dir =filename InnoDB相关 innodb表空间存放目录
innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend InnoDB相关 InnoDB将数据保存在一个或者多个数据文件中成为表空间
innodb_flush_log_at_trx_commit = 1 InnoDB相关 如果设置为 1 ,InnoDB 会在每次提交后刷新(fsync)事务日志到磁盘上,枚举类型
取值范围:0,1,2
默认值:1
innodb_log_buffer_size = 8M InnoDB相关 InnoDB log buffer大小
取值范围:1048576 - 4294967295
默认值:16777216
innodb_log_file_size = 500M InnoDB相关 事物日志大小
取值范围:4194304-512GB
默认值:50331648
innodb_log_files_in_group = 2 InnoDB相关 在日志组中的文件总数.通常来说 2~3 是比较好的
取值范围:2-100
默认值:2
innodb_log_group_home_dir = filename InnoDB相关 InnoDB 的日志文件所在位置
innodb_lock_wait_timeout = 50 InnoDB相关 InnoDB 事务在被回滚之前可以等待一个锁定的超时秒数
取值范围: 1-1073741824
默认值:50
innodb_flush_method = O_DSYNC InnoDB相关 InnoDB 用来刷新日志的方法.表空间总是使用双重写入刷新方法
取值范围:
windows:unbuffered/normal
Unix: fsync/O_DSYNC/littlesync/nosync/O_DIRECT/O_DIRECT_NO_FSYNC
默认值: unbuffered(windows)/fsync(unix)
innodb_force_recovery=1 InnoDB相关 如果你发现 InnoDB 表空间损坏, 设置此值为一个非零值可能帮助你导出你的表
取值范围:0-6
默认值:0
innodb_fast_shutdown InnoDB相关 速 InnoDB 的关闭
innodb_thread_concurrency = 8 InnoDB相关 此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量
取值范围:0-100
默认值:0(无限并发)

三.[mysql]

参数值 参数用途
default-character-set = utf8 数据库字符集
connect-timeout = 3 连接超时时间,单位秒
取值范围:2-31536000
默认值:10
pid_file = filename pid文件位置

四.[mysqld_safe]

参数值 参数用途
open-files-limit = 8192 每个进程的可打开文件数量
取值范围:0-操作系统上限
默认值:5000

你可能感兴趣的:(MySQL运维)