mysql全配置解析

﹏ヽ暗。殇╰゛Y 2024-02-17 11:38 153阅读 0赞
  1. [client]
  2. port=3306
  3. [mysql]
  4. no-beep=
  5. [mysqld]
  6. # ----------------------------基本设置 start----------------------------
  7. port=3306
  8. # 唯一标识数据库服务器的身份.每个运行MySQL的服务器都应该具有唯一的server-id值,以便在复制和分布式架构中进行正确的数据同步和识别。
  9. server-id=1
  10. # 进程标识文件:指定MySQL服务器进程的PID(进程ID)文件的路径和名称
  11. pid-file=/var/run/mysqld/mysqld.pid
  12. # 套接字:指定MySQL服务器监听客户端连接的套接字文件的路径和名称。
  13. socket=/var/run/mysqld/mysqld.sock
  14. # 数据目录:datadir表示MySQL服务器将存储和读取数据库文件的目录
  15. datadir=/var/lib/mysql
  16. # 定义MySQL服务器应该遵循的SQL语法规则和行为模式
  17. sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  18. # MySQL服务器可以同时打开的文件描述符的最大数量
  19. open_files_limit=4161
  20. # 指定MySQL服务器报告给MySQL监控工具的端口号
  21. report_port=3306
  22. # ----------------------------基本设置 end ----------------------------
  23. # ----------------------------连接设置 start----------------------------
  24. # 最大链接数
  25. max_connections=151
  26. # 设置table高速缓存的数量,由于每个客户端连接都会至少访问一个表,因此此参数的值与max_connections有关。
  27. # 例如,对于 1000 个并行运行的连接,应该让表的缓存至少有 1000 × N ,这里 N 是应用可以执行的查询的一个联接中表的最大数量
  28. table_open_cache=2000
  29. # 线程缓存数量
  30. thread_cache_size=32
  31. # 值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。
  32. # back_log值不能超过TCP/IP连接的侦听队列的大小。若超过则无效
  33. # 查看当前系统的TCP/IP连接的侦听队列的大小命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog
  34. back_log=80
  35. # 设置最大连接异常次数(“阻塞”的连接错误的数量,而非密码输入错误次数),如果超过次次数,MySQL服务器就会阻止这台主机后续的所有请求
  36. # 如超过此次数错误异常,解决办法,调整此次数,或者执行flush hosts
  37. # 以上两种办法只是临时解决问题,治标不治本,还得从网络等层面根本解决问题
  38. max_connect_errors=100
  39. # 指定空闲连接的超时时间
  40. # 设置的是一个访问等待一个周期时长,非交互式连接超时时间,默认的连接mysql api程序,jdbc连接数据库等
  41. wait_timeout=3153600
  42. # 交互式连接超时时间(mysql工具、mysqldump等)
  43. interactive_timeout=3153600
  44. # ----------------------------连接设置 end----------------------------
  45. # ----------------------------缓存设置 start----------------------------
  46. # 临时表的内存缓存大小
  47. tmp_table_size=232M
  48. # mysql重建索引时允许使用的临时文件最大大小
  49. myisam_max_sort_file_size=100G
  50. # MyISAM 设置恢复表之时使用的缓冲区的大小
  51. myisam_sort_buffer_size=451M
  52. # MySQL读入缓冲区大小
  53. read_buffer_size=64K
  54. # 是MySql的随机读缓冲区大小
  55. read_rnd_buffer_size=1M
  56. # MyISAM存储引擎使用的键缓冲区大小,键缓冲区是一个内存区域,用于缓存MyISAM表的索引数据,以加快索引查找的速度。
  57. key_buffer_size=256M
  58. # 设置 InnoDB 用来往磁盘上的日志文件写操作的缓冲区的大小
  59. innodb_log_buffer_size=8M
  60. # join缓存大小,对于table join的一个重要的优化手段,可以极大提高join查询的效率,默认256k
  61. join_buffer_size=8M
  62. # 针对的是一个事务中的一行记录大小,当一行记录超过了限制的大小,将会报错
  63. # 该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败
  64. max_allowed_packet=64M
  65. # 是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存。
  66. # 并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源
  67. sort_buffer_size=256K
  68. # 指定查询缓存的工作方式,query_cache_type的值为0,表示查询缓存被禁用
  69. query_cache_type=0
  70. # 指定查询缓存的内存大小,值为0,表示查询缓存的内存大小为零,即禁用查询缓存
  71. query_cache_size=0
  72. # ----------------------------缓存设置 end----------------------------
  73. # ----------------------------日志设置 start----------------------------
  74. # 指定MySQL日志的输出方式
  75. log-output=FILE
  76. # 指定是否启用常规查询日志。设置为0表示禁用常规查询日志,不记录每个查询的详细信息。
  77. general-log=0
  78. # 指定是否启用慢查询日志。设置为1表示启用慢查询日志,记录执行时间超过long_query_time阈值的查询。
  79. slow-query-log=1
  80. # 指定慢查询日志文件的路径和名称
  81. slow_query_log_file=/var/log/mysql/slow.log
  82. # 指定慢查询的阈值时间(以秒为单位)。
  83. long_query_time=10
  84. # 启用二进制日志记录(Binary Logging)。设置为一个非空的值,如"mysql-bin",表示启用二进制日志记录,并指定二进制日志文件的前缀名称。
  85. log-bin="mysql-bin"
  86. # 指定错误日志文件的路径和名称
  87. log-error="/var/lib/mysql/mysql-error.err"
  88. #当二进制日志启用后,这个变量就会启用。它控制是否可以信任存储函数创建者,不会创建写入二进制日志引起不安全事件的存储函数
  89. #如果数据库没有使用主从复制,那么就可以将参数log_bin_trust_function_creators设置为1
  90. log_bin_trust_function_creators=1
  91. # ----------------------------日志设置 end----------------------------
  92. # ----------------------------InnoDB设置 start----------------------------
  93. # 默认存储引擎设置
  94. default-storage-engine=InnoDB
  95. # 设置InnoDB存储引擎使用的缓冲池大小。缓冲池是一个内存区域,用于缓存InnoDB表的数据和索引,以提高读取操作的性能。建议将innodb_buffer_pool_size设置为系统可用内存的60%-80%
  96. innodb_buffer_pool_size=4G
  97. # 缓冲池划分的区域数
  98. innodb_buffer_pool_instances=8
  99. # 5.6.6版本以后,指定每个InnoDB表是否使用独立的表空间文件。
  100. innodb_file_per_table=1
  101. # 0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。
  102. # 1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。
  103. # 2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。
  104. # 当设置为0,该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
  105. # 当设置为1,该模式是最安全的, 但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。。
  106. # 当设置为2,该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失
  107. innodb_flush_log_at_trx_commit=1
  108. # 当自动扩展表空间被填满之时,为扩展而增加的尺寸(MB为单位)
  109. innodb_autoextend_increment=64
  110. # MySQL层和Innodb层交互的次数,超过次数后交出CPU使用权。
  111. # 例如select查询10000条,实际上需要进入Innodb层10000次。当查询了5000条数据后将放弃CPU使用权,交给其它线程使用。其它线程使用完之后再继续刚才查询
  112. innodb_concurrency_tickets=5000
  113. # 用于读取到old列表中的页时需要等待多久才会被加入到LRU列表的首部。防止new列中的热点数据被刷出
  114. innodb_old_blocks_time=1000
  115. # 日志文件大小
  116. innodb_log_file_size=256M
  117. # 线程并发执行数量,默认是0(不限制并发数量)
  118. innodb_thread_concurrency=33
  119. # ----------------------------InnoDB设置 end----------------------------
  120. # ----------------------------其他设置 start----------------------------
  121. # 限制从哪个目录中可以加载或写入文件。它用于提高MySQL服务器的安全性,防止恶意用户滥用文件操作功能。
  122. secure-file-priv="/var/lib/mysql-files/"
  123. # 表名大小写忽略
  124. lower_case_table_names=1
  125. # 设置GROUP_CONCAT函数用于将多个字符串连接成一个字符串长度,如果过小会导致返回结果被截断
  126. group_concat_max_len = 4294967295
  127. # 指定服务器端使用的字符集
  128. character-set-server=utf8mb4
  129. # 指定服务器端使用的排序规则
  130. collation-server=utf8mb4_unicode_ci
  131. # ----------------------------其他设置 end----------------------------

发表评论

表情:
评论列表 (有 0 条评论,153人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL字段类型最

    前言: 要了解一个数据库,我们必须了解其支持的数据类型。MySQL 支持大量的字段类型,其中常用的也有很多。前面文章我们也讲过 int 及 varchar 类型的用法,但一直

    相关 MySQL慢日志

    前言: 慢日志在日常数据库运维中经常会用到,我们可以通过查看慢日志来获得效率较差的 SQL ,然后可以进行 SQL 优化。本篇文章我们一起来学习下慢日志相关知识。 1.慢