[client]
# 该目录下的内容常用来进行localhost登陆,一般不需要修改
port = 3306 # 端口号
socket = /var/lib/mysql/mysql.sock # 套接字文件(localhost登陆会自动生成)

[mysql]
# 包含一些客户端mysql命令行的配置
no-auto-rehash # 默认不自动补全 auto-rehash自动补全

[mysqld]
# mysql优化的配置目录,除硬件和环境配置外,全部优化在此配置,
# 一般服务器安装只有此配置目录
user = mysql #默认启动用户,一般不需要修改,可能出现启动不成功
port = 3306 #端口号
socket = /var/lib/mysql/mysql.sock #套接字文件 (套接字方式登陆比TCP/IP方式连接快)
character-set-server = utf8 #设置数据库服务器默认编码 utf-8
basedir = /usr/local/mysql #数据库安装目录--指定此参数可解决相对路径造成的问题
datadir = /data/mysql #数据库目录,数据库目录切换时需要用到
pid-file = /var/run/mysqld/mysqld.pid #mysql进程文件,可指定自己的进程文件
external-locking = FALSE #外部锁定(非多服务器可不设置该选项,默认skip-external-locking)
skip-external-locking #跳过外部锁定 (避免多进程环境下的external locking--锁机制)
skip-name-resolve #跳过主机名解析,直接IP访问,可提升访问速度
log-error = /data/log/mysqld.log #错误日志文件
log-warnings #默认为1,表示启用警告信息记录日志,不需要置0即可,大于1时表示将错误或者失败连接记录日志
open_files_limit = 10240 #全局只读变量,文件描述符限制 注:上限其实为OS文件描述符上限,小于OS上限时生效 可用lsof查看限制并修改相应配置

#以下配置较为重要
back_log = 600 #在MYSQL暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。不超过TCP/IP监听队列,建议512倍数
#如果系统在短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的监听队列的大小。默认值50。
max_connections = 5000 #MySQL允许最大的进程连接数,如果经常出现Too Many Connections的错误提示,则需要增大此值
max_connect_errors = 6000 #设置每个主机的连接请求异常中断的最大次数,当超过该次数,MYSQL服务器将禁止host的连接请求,
#直到mysql服务器重启或通过flush hosts命令清空此host的相关信息
max_allowed_packet = 32M #限制接收数据包的大小,单条数据超过该值时插入或更新失败,
#show VARIABLES like '%max_allowed_packet%'; 查看当前限制大小
sort_buffer_size = 8M #每个连接独享,用于优化不能通过sql或者索引优化的group和order等,设置的值应适中
#比如:500个连接,500*8 = 4G,将消耗4G内存
join_buffer_size = 8M #用于表间关联缓存的大小,每个连接独享
#thread_concurrency = 16 #应设为CPU核数的2倍.
thread_cache_size = 600 #线程缓存变量,减少连接的创建,一般设置规则
#1G->8;2G->16;3G->32;根据实际情况可适当加大(个人:2^(n+2))
thread_stack = 1024K #设置MYSQL每个线程的堆栈大小,可设置范围为128K至4GB,默认足够大,一般不用修改
query_cache_size = 128M #查询缓存,设置不宜过大,主要是因为缓存越大,设置失效时间越长。如果高并发写,可以禁用该功能
query_cache_limit = 2M #指定单个查询能够使用的缓冲区大小,默认为1M
query_cache_min_res_unit = 4k #大数据查询4k,小数据查询2k,目的是提高缓存命中率

#数据库引擎相关参数
default-storage-engine = InnoDB #默认数据库引擎
innodb_data_file_path = ibdata1:1024M:autoextend #指定数据文件,初始大小,指定扩展大小 注意与数据库中初始文件大小保持一致
#格式:size-allocation[:autoextend[:max-size-allocation]]
innodb_read_io_threads = 16 #read IO线程,根据cpu核心线程数量设置
innodb_write_io_threads = 16 #write IO线程,根据cpu核心线程数量设置
innodb_thread_concurrency = 48 #服务器有几个CPU就设置为几,建议用默认设置,一般为8
innodb_lock_wait_timeout = 120 #事务获取锁的最长等待时间,超时请求失败
innodb_buffer_pool_size = 80G #类似于myisam的key_pool_size 适当增加可提高命中率,专用服务器可设置为70-80%
#innodb_flush_log_at_trx_commit = 2 #默认值1 每次提交日志记录磁盘 2 日志写入系统缓存 0 不提交也记录,不安全,不推荐
innodb_flush_method = O_DIRECT #控制着innodb数据文件及redo log的打开、刷写模式
#fdatasync(默认),调用fsync()去刷数据文件与redo log的buffer
#O_DSYNC,innodb会使用O_SYNC方式打开和刷写redo log,使用fsync()刷写数据文件
#O_DIRECT,innodb使用O_DIRECT打开数据文件,使用fsync()刷写数据文件跟redo log
#fsync() 作用:数作用是flush时将与fd文件描述符所指文件有关的buffer刷写到磁盘
innodb_log_files_in_group = 2 #以循环方式将日志文件写到多个文件,默认2
innodb_log_file_size = 4G #数据日志文件大小,较大可提升性能,
innodb_log_buffer_size = 512M #日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据(开发人员推荐1-8M---不知道为什么)
#innodb_file_per_table = 1 #独立表空间 innodb 默认一个表空间
#
innodb_autoinc_lock_mode = 2 #主要作用于自增列
#0 这个表示tradition 传统 得到语句级别的锁,具有连续性和重复性,但影响并发的插入
     #1 这个表示consecutive 连续 根据一次性插入的数量生成连续的值,
#auto_inc锁不需要一直保持到语句的结束,语句得到了相应的值后就可以提前释放锁
     #2 这个表示interleaved 交错 没有auto_inc锁,auto_incremant值可能不是连续的

#Percona XtraDB Cluster 5.7. 基于同步复制的多主MySQL集群解决方案,只支持Innodb引擎
#需要安装wsrep打过补丁的版本
#下载地址:https://www.percona.com/downloads/

pxc_strict_mode = ENFORCING
wsrep_cluster_address = gcomm://192.168.66.242,192.168.66.241 #集群中的节点地址,可以使用主机名或IP
wsrep_node_address = 192.168.66.241 #本机节点地址,可以使用主机名或IP
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
wsrep_sst_method = xtrabackup-v2 #指定SST方式,支持rsync(最快,需要锁表),
#mysqldump和xtrabackup,从5.5.33-23.7.6起支持xtrabackup-v2
wsrep_slave_threads = 8 #线程数量
wsrep_cluster_name = Cluster #集群名字,必须统一
wsrep_node_name = Node1 #集群中节点名字,必须唯一
wsrep_sst_auth = "sstuser:8jUthGnAUfWEfJ9" #xtrabackup使用的用户名密码,第一台节点启动时创建,详见安装文档
#wsrep_sst_donor='node3,' #一个逗号分割的节点串作为状态转移源,
#比如wsrep_sst_donor=node5,node3, 如果node5可用,用node5,不可用用node3,
#如果node3不可用,最后的逗号表明让提供商自己选择一个最优的。

transaction_isolation = READ-COMMITTED #事务隔离级别
# 1.READ-UNCOMMITTED-读未提交 --脏读(开发生产均不建议)
# 2.READ-COMMITTE-读已提交 --非默认
# 3.REPEATABLE-READ -可重复读 --可能出现幻影行(Innodb 和 Falcon 通过并发解决幻读问题)
# 4.SERIALIZABLE -串行 --最高级别 可能出现大量超时和锁竞争
tmp_table_size = 10G #查询生成的临时表大小超过该值时会在硬盘生成MyISAM表,如果存在大量group by 等语句,可调整大小
max_heap_table_size = 5G #内存表最大空间限制 表在磁盘中,数据在内存中
explicit_defaults_for_timestamp=1 #主要针对TIMESTAMP列,不指定默认会自动加上notnull属性,第一列会自动添加current timestamp
table-definition-cache = 4096 #表定义相关信息缓存 实际存放的是frm与内存的映射关系
table-open-cache = 4096 #打开表缓存 存放已打开的表句柄
#同时设置生效
interactive_timeout = 120 #mysql在关闭一个交互的连接之前所要等待的秒数(客户端连接)
wait_timeout = 864000 #mysql在关闭一个非交互的连接之前所要等待的秒数 默认8小时(应用程序调用),
#根据应用实际情况决定 show processlist; sleep进程多则相应调小
long_query_time = 2 #慢查询超时设置,默认10秒,记录超过查询时间的语句
slow-query-log=1 #注意之前的版本5.6之前的版本为 log-slow-query 是否记录慢查询日志---作为数据库分析
slow-query-log-file=/data/log/query-slow.log #慢查询日志记录文件
#相关二进制文件设置
log_bin #数据库操作二进制记录,数据库备份,复制所需
binlog_format = ROW #ROW(基于行的复制--安全,但是注意并发) STATEMENT(基于sql语句的复制),MIXED(混合模式复制)
binlog_cache_size = 4M #二进制日志缓存,提高log-bin记录效率
log_bin_trust_function_creators = 1 #主从复制是需要注意,为了保证主从复制完全一致,需要开启此选项,主从默认阻止函数创建
max_binlog_size = 1G #二进制日志文件大小默认1G 要求大于4096 小于1G
expire_logs_days = 7 #清除过期日志
#binlog_do_db #此参数表示只记录指定数据库的二进制日志
#binlog_ignore_db #忽略某数据库记录

key_buffer_size = 2048M #提高查询命中率,最好不要超过4G,可根据缓存命中率适当调整show global status like 'key_read%';
read_buffer_size = 16M #顺序读缓存,每个连接独享
read_rnd_buffer_size = 64M #随机读缓存,每个连接独享
bulk_insert_buffer_size = 1G #批量插入并且只有向非空表添加数据时才使用该缓存,只对myisam表使用。

#主从复制相关--必须开启log-bin
server-id = 19911216 #主从复制必须,并且各服务器具有唯一性
log_slave_updates #配置从服务器的更新是否写入二进制日志,默认是不打开的
replicate-ignore-db = mysql #主从复制默认忽略的数据库,可用","分隔或使用多条记录
#replicate-do-db=qrs,login #主从复制指定数据库,","号隔开或使用多条记录

[mysqldump] #数据库全量备份
quick #强制mysqldump从服务器一次一行地检索表中的行
max_allowed_packet = 32M #可接收数据包大小

[isamchk] #在mysqld服务器不使用的情况下修复表或在崩溃状态下恢复表
key_buffer = 1024M
sort_buff_size =1024M
read_buffer = 16M
write_buffer = 16M

[myisamchk] #在mysqld服务器不使用的情况下修复表或在崩溃状态下恢复表
key_buffer = 1024M
sort_buff_size = 1024M
read_buffer = 16M
write_buffer = 16M

[mysqld_safe] #safe方式启动数据库,相比于mysqld,会在服务启动后继续监控服务状态,死机时重启
open-files-limit = 8192

Mysql常用配置及优化的更多相关文章

  1. MySQL常用配置和性能压力测试:MySQL系列之十五

    一.MySQL常用配置 以下所有配置参数以32G内存的服务器为基 1.打开独立的表空间 innodb_file_per_table = 1 2.MySQL服务所允许的同时会话数的上限,默认为151,经 ...

  2. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  3. MySQL常用SQL语句优化

    推荐阅读这篇博文,索引说的非常详细到位:http://blog.linezing.com/?p=798#nav-3-2 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要 ...

  4. mysql常用配置注意项与sql优化

    建立数据库: 建立数据库时编码字符集采用utf8 排序规则: 后缀"_cs"或者"_ci"意思是区分大小写和不区分大小写(Case Sensitive & ...

  5. Hadoop平台常用配置及优化建议

    当发现作业运行效率不理想时,需要对作业执行进行性能监测,以及对作业本身.集群平台进行优化.优化后的集群可能最大化利用硬件资源,从而提高作业的执行效率.本文记录了在hadoop集群平台搭建以及作业运行过 ...

  6. MySQL常用配置

    查看MySQL的参数信息 mysql> show variables; 查看key_buffer_size的使用情况 mysql> show status like 'key_read%' ...

  7. MySQL常用配置参数

    基本配置: datadir:指定mysql的数据目录位置,用于存放mysql数据库文件.日志文件等. 配置示例:datadir=D:/wamp/mysqldata/Data default-chara ...

  8. 【linux】之安装mysql常用配置

    下载mysql地址 http://dev.mysql.com/downloads/mysql/ 选择下面这个 查看是否存在mysql安装包 rpm -qa|grep -i mysql 删除mysql安 ...

  9. [MySQL] 常用SQL的优化--18.4

    这里介绍下,Insert.Group By等SQL语句的优化方法: 1.大批量数据插入 当load命令导入数据的时候,可以进行适当的设置提高导入速度. 1.1 对于MyISAM表,可以先禁用非唯一索引 ...

随机推荐

  1. spark机制理解(一)

    一  基本术语 Application:  基于Spark的用用户程序,包含了Driver程序和集群上的Executor. Driver Program: 运行行main函数并且新建SparkCont ...

  2. 关于<button> 没写 type='button' 导致点击时提交以及<button>和<input type="button">的区别

    这是我的第一篇博客,如果写的不好,请见谅 这是一个关于button按钮一个小问题 最近刚开学跟着老师一起写代码,在模仿JAVA web程序设计(慕课版) P61页第三章 Ajax处理XML的代码中发现 ...

  3. MongoDB4.0+版本安装

    >>>首先要下载MongoDB软件安装包, MongoDB社区版官网下载 >>>双击msi安装文件进行安装,点击"Next" >>& ...

  4. PHP切割字符用到的explode 以及计数count

    在thinkphp中同样可以用 explode来进行字符的切割工作,比如 $jihe='1,2,3,4'; 在使用explode之后,可以获得一个数组: $array=explode(',',$jih ...

  5. # 2017-2018-1 20155224 《信息安全系系统设计基础》第四周MyOD

    2017-2018-1 20155224 <信息安全系系统设计基础>第四周MyOD 在这里跟老师先道歉,当时我的git没有安装好,后面也一直没有装上,所以程序没有git. 要求 参考教材第 ...

  6. WPF字体模糊解决方案

    原文:WPF字体模糊解决方案 WPF对字体渲染做了很大的改善,与Winform窗体字体相比较,更加平滑,但是当字体大小较小时,则会出现字体模糊的现象.可通过以下方法进行改善处理: 对于XAML用户界面 ...

  7. JavaEE笔记(六)

    实现Action的几种方法1. implements Action2. extends ActionSupport3. 也可以不继承任何父类不实现任何借口 #当一个类有多个方法 package com ...

  8. lxml etree xpath

    from lxml import etree #####################基本用法: ##################### html = ''' <h1 class=&quo ...

  9. 洛咕 P3338 [ZJOI2014]力

    好久没写过博客了.. 大力推式子就行了: \(E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}+\sum_{j>i}\frac{q_j}{(j-i)^2}\) 那么要转化 ...

  10. idea 开发javaee 时,出现访问的文件和源文件不一样,没有正常更新的解决方案

    这是因为我配置的idea debug 运行模式 输出的文件在 out 和 target 目录下,因为idea本身的原因,导致这两个目录没有及时更新, 导致前端在访问时的页面源码和ide中的一直不一样, ...