Mysql 配置项手册

简介

配置项

basedir

 项
   basedir
 样例
   basedir = /usr/local/mysql-5.7.21
  备注
    mysql安装根目录

tmpdir

 项
   tmpdir
 样例
   tmpdir = /tmp
  备注
    临时目录 比如load data infile会用到,一般都是使用/tmp

port

 项
   port
 样例
   [client]
   [mysqld]
   socket  = 3306
  备注
    服务端口号 默认3306

socket

 项
   socket
 样例
   [client]
   [mysqld]
   socket  = /tmp/mysql.sock
  备注
    设置socket文件地址

skip-name-resolve

 项
   skip-name-resolve
 样例
   [mysqld]
   skip-name-resolve
  备注
    # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,
    # 则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求

skip-networking

 项
   skip-networking
 样例
   [mysqld]
    skip-networking
  备注
    #开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!

character-set-server

 项
   character-set-server
 样例
   [mysqld]
   character-set-server = utf8
  备注
    设置数据库默认字符集

collation-server

 项
   collation-server
 样例
   [mysqld]
   collation-server = utf8
  备注
    数据库字符集对应一些排序等规则,注意要和character-set-server对应

init_connect

 项
   init_connect
 样例
   [mysqld]
   init_connect='SET NAMES utf8'
  备注
    设置client连接mysql时的字符集,防止乱码

lower_case_table_names

 项
   lower_case_table_names
 样例
   [mysqld]
   lower_case_table_names = 1
  备注
    是否对sql语句大小写敏感,默认值为0,1表示不敏感

datadir

 项
   datadir
 样例
   [mysqld]
   datadir = /usr/local/mysql-5.7.21/data
  备注
    mysql数据文件所在位置

open_files_limit

 项
   open_files_limit
 样例
   [mysqld]
   open_files_limit = 65535
  备注
    # 当open_files_limit没有被配置的时候,比较max_connections*5和ulimit -n的值,哪个大用哪个,
    # 当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。
    # 注意:仍然可能出现报错信息Can't create a new thread;此时观察系统cat /proc/mysql进程号/limits,观察进程ulimit限制情况
    # 过小的话,考虑修改系统配置表,/etc/security/limits.conf和/etc/security/limits.d/90-nproc.conf

interactive_timeout

 项
   interactive_timeout
 样例
   [mysqld]
   interactive_timeout = 1800 
  备注
    MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效

wait_timeout

 项
   wait_timeout
 样例
   [mysqld]
   wait_timeout = 1800 
  备注
    MySQL连接闲置超过一定时间后(单位:秒,此处为1800秒)将会被强行关闭

general_log

 项
   general_log
 样例
   [mysqld]
   general_log = 0
  备注
    普通查询日志,默认值off,不开启

general_log_file

 项
   general_log_file
 样例
   general_log_file = /usr/local/mysql-5.7.21/log/mysql-general.log
  备注
    普通查询日志存放地址

log_error_verbosity

 项
   log_error_verbosity
 样例
   [mysqld]
   log_error_verbosity = 2
  备注
    全局动态变量,默认3,范围:1~3
    表示错误日志记录的信息,1:只记录error信息;2:记录error和warnings信息;3:记录error、warnings和普通的notes信息。

log_error

 项
  log_error 
 样例
   [mysqld]
   log_error = /usr/local/mysql-5.7.21/log/mysql-error.log
  备注
    错误日志文件地址

slow_query_log

 项
   slow_query_log
 样例
   [mysqld]
   slow_query_log = 1   
  备注
    开启慢查询

long_query_time

 项
   long_query_time
 样例
   [mysqld]
   long_query_time = 3
  备注
    开启慢查询时间,此处为1秒,达到此值才记录数据

log_throttle_queries_not_using_indexes

 项
  log_throttle_queries_not_using_indexes 
 样例
   [mysqld]
   log_throttle_queries_not_using_indexes = 0
  备注
    mysql 5.6.5新增,用来表示每分钟允许记录到slow log的且未使用索引的SQL语句次数,默认值为0,不限制。

slow_query_log_file

 项
   slow_query_log_file
 样例
   [mysqld]
   slow_query_log_file = /usr/local/mysql-5.7.21/log/mysql-slow.log
  备注
    慢查询日志文件地址

log_bin

 项
   log_bin
 样例
   [mysqld]
   log_bin = /usr/local/mysql-5.7.21/log/mysql-bin.log
  备注
    开启二进制日志

log-queries-not-using-indexes

 项
   log-queries-not-using-indexes
 样例
   [mysqld]
   log-queries-not-using-indexes = 1
  备注
    开启记录没有使用索引查询语句

max_binlog_size

 项
   max_binlog_size
 样例
   [mysqld]
   max_binlog_size = 1000M
  备注
    如果二进制日志写入的内容超出给定值,日志就会发生滚动。你不能将该变量设置为大于1GB或小于4096字节。 默认值是1GB。

expire_logs_days

 项
   expire_logs_days
 样例
   [mysqld]
   expire_logs_days = 0
  备注
    mysql清除过期日志的时间,默认值0,不自动清理,而是使用滚动循环的方式,此日志是指binlog。

binlog_format

 项
   binlog_format
 样例
   [mysqld]
   binlog_format = row
  备注
    binlog的格式也有三种:STATEMENT,ROW,MIXED。mysql 5.7.7后,默认值从 MIXED 改为 ROW

sync_binlog

 项
   sync_binlog
 样例
   [mysqld]
   sync_binlog = 1
  备注
    默认值N=1,使binlog在每N次binlog写入后与硬盘同步,ps:1最慢

innodb_flush_log_at_trx_commit

 项
   innodb_flush_log_at_trx_commit
 样例
   innodb_flush_log_at_trx_commit=1
  备注
    表示日志提交方式,先从logbuffer(内存,用户空间)-->os buffer --> 磁盘
    1:每次提交事务,写到logbuffer,写入到osbuffer,同时调用fsync更新磁盘;
    0:每次提交事务,不会更新osbuffer,每秒钟更新osbuffer,同时调用fsync更新磁盘;
    2:每次提交事务,写入到osbuffer,每秒钟调用一次fsync更新到磁盘;

> innodb_undo_tablespaces

项 innodb_undo_tablespaces 样例


备注 默认rollback segment全部写在一个文件中, 可以通过设置变量 innodb_undo_tablespaces 平均分配到多少个文件中。该变量默认值为0,不建议修改为非0的值。 该变量为静态变量,只能在数据库示例停止状态下修改


> innodb_undo_logs

项 innodb_undo_logs 样例 innodb_undo_logs=128


备注 回归段个数,每个回滚段有1024个 undo log segment,128个可以存放:128*1024个回滚操作

 项

 样例

  备注


> 

样例


备注

 项

 样例

  备注


> 

样例


备注

 项

 样例

  备注

 项

 样例

  备注


系统变量

autocommit

 项
   autocommit

 样例
   set session autocommit=0;

  备注
    表示对每次操作的结果自动提交,默认值为:0

    执行:show variables like 'autocommit' 显示为:ON
 项

 样例

  备注


 项

 样例

  备注


 项

 样例

  备注


 项

 样例

  备注


结语

参考