mysql配置文件my.cnf_MariaDB/MySQL配置文件my.cnf详解

实验环境

OS: debian_version_8.11 64位

CPU: Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz

Mem: 8GB

Kernel: 3.16.0-10-amd64

Mariadb: mariadb-10.2.30

说明:

1、MariaDB/MySQL的默认设置性能非常差,仅仅起一个功能测试的作用,不能用在生产环境中,因此要对一些参数进行调整优化。

2、但是配置文件各参数的调整需要根据实际环境,不同时期不同数量级的数据进行性能优化。

3、本文MySQL/MariaDB配置文件位于/etc/mysql/my.cnf。 每次更改此文件后你需要重启MySQL服务,以更改生效。

4、经供参考,在生产环境中进行任何变更之前需要慎重考虑。

配置文件参数解读

[client]

port = 3306

#客户端默认连接端口socket

socket = /apps/mysql/lock/mysql.sock

#用于本地连接的socket套接字

[mysqld]

#服务端基本配置

port = 3306

#mysql服务端监听端口

socket = /apps/mysql/lock/mysql.sock

#为mysql客户端程序和服务器之间的本地通讯指定一个套接字文件

basedir = /apps/mysql

#mysql安装目录

datadir = /apps/mysql/data

#mysql数据库数据文件存放目录

pid-file = /apps/mysql/run/mysql.pid

#pid所在的目录

log-error = /apps/mysql/logs/mysql-error.log

#记录mysql错误日志文件

user = mysql

#mysql启动用户

bind-address=192.168.1.146

#表示监听IPV4地址

skip_name_resolve = 1

#表示跳过主机名解析

skip-external-locking

#mysql选项以避免外部锁定。该选项默认开启。不使用系统锁定,要使用myisamchk,必须关闭服务器

key_buffer_size = 384M

#这个参数用来缓存MyISAM存储引擎的索引参数,增加它可得到更好处理的索引(对所有读和多重写)。默认为InnoDB存储引擎,该参数可以设置小点,64M即可。

#系统将开始换页并且真的变慢了。对于内存在4GB左右的服务器该参数可设置为384M或512M。通过检查状态值Key_read_requests和Key_reads,

#可以知道key_buffer_size设置是否合理。比例key_reads/key_read_requests应该尽可能的低,

#至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE 'key_read%'获得)。注意:该参数值设置的过大反而会是服务器整体效率降低

max_allowed_packet = 16M

#允许最大接收数据包的大小,防止服务器发送过大的数据包。增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如仅当你发出长查询或mysqld必须返回大的结果行时mysqld才会分配更多内存。可以设置为16MB或者更大,但设置的太大也可能有危险。

#该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。

table_open_cache = 512

#MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64,假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目);当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上。

back_log = 600

#MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,

#然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。

#如果期望在一个短时间内有很多连接,你需要增加它。也就是说,如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,

#以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。

#另外,这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小。

#你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。

sort_buffer_size = 8M

#MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。

#如果不能,可以尝试增加sort_buffer_size变量的大小,默认为256k。另外,一般出现Using filesort的时候,要通过增加索引来解决。

read_buffer_size = 2M

#该参数用于表的顺序扫描,表示每个线程分配的缓冲区大小。比如在进行全表扫描时,MySQL会按照数据的存储顺序依次读取数据块,每次读

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值