mysql8的my.conf配置文件参考指引

[client] #客户端连接配置
port = 3306
#客户端和服务端的socket文件保持统一,文件路径按实际情况自行定义。
socket = /home/datax/mysql/data/mysql8.0.18/3306/mysql.sock
#设置客户端编码
default-character-set = utf8mb4


[mysqld] #服务端配置
# ---------------- 基础配置 ----------------
#自定义端口
port = 3306
#服务端sock文件路径,每个数据库独立一个,文件路径按实际情况自行定义。
socket = /home/datax/mysql/data/mysql8.0.18/3306/mysql.sock
#mysql的安装目录,文件路径按实际情况自行定义。
basedir = /home/datax/mysql8.0.18
#数据存储目录,最好和安装目录分开,且每个节点相对独立,文件路径按实际情况自行定义。
datadir = /home/datax/mysql/data/mysql8.0.18/3306
#每个数据库的pid文件存放路径,文件路径按实际情况自行定义。
pid-file = /home/datax/mysql/data/mysql8.0.18/3306/mysql.pid
#表示MySQL的管理用户
user = mysql
#设置服务端编码,utf8mb4是utf8的超集,支持特殊文字,且一个字符最大可占4个字节存储空间,现在mysql基本是用这个编码集
character_set_server = utf8mb4
#默认存储引擎,其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读、同时被设计用来最有效的利用以及使用内存和CPU
default-storage-engine = InnoDB
#表名不区分大小写
lower_case_table_names = 1

# ---------------- 连接数、处理文件数配置,用于优化连接 ----------------
# 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。默认值:28800秒(8小时)
interactive_timeout = 3600
# 服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,默认值:28800秒(8小时)
wait_timeout = 3600
#MySQL的最大连接数,如果请求量比较大,建议调高此值增加并行连接数量,开销越多的内存,16G内存推进配置800到1000。
max_connections = 2048
#对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。一般设置max_connections的10倍
max_connect_errors = 20480
#以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。
back_log = 600
#打开的文件描述符限制,默认最小1024;当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。
open_files_limit = 40960
#每打开一个表,会读入一些数据到table_open_cache缓存中,缓存中找不到相应信息时,会去磁盘上读取。默认值64。很大时,系统处理不了,会出现客户端失效,连接不上
table_open_cache = 1024

# ---------------- 缓存配置提高数据库性能 ----------------
#接受的数据包大小;增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。
max_allowed_packet = 64M
# MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。
read_buffer_size = 16M
# MySQL的随机读缓冲区大小。进行排序查询时,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。
read_rnd_buffer_size = 8M
# MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。
sort_buffer_size = 16M
#MySQL的heap(堆积)表缓冲大小。如果调高该值,大多数联合甚至可以不用临时表即可以完成,可达到提高联接查询速度的效果
tmp_table_size = 32M
#联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
join_buffer_size = 8M
#这个值(默认8,内存超过3G最大设置64)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取。
thread_cache_size = 64

# ---------------- 普通日志文件配置 ----------------
#错误日志路径,文件路径按实际情况自行定义。
log-error = /home/datax/mysql/logs/mysql8.0.18/3306/error.log
#开启慢查询日志 开启:1,关闭:0
slow_query_log = 1
#开启慢查询日志路径,文件路径按实际情况自行定义。
slow_query_log_file = /home/datax/mysql/logs/mysql8.0.18/3306/slow.log
#慢查询时间 超过3秒则为慢查询
long_query_time = 3

# ---------------- Binlog配置(二进制日志文件) ----------------
#log-bin的存储路径,一般存储在data目录下,文件路径按实际情况自行定义。
log-bin = /home/datax/mysql/data/mysql8.0.18/3306/mysql-bin
#log-bin-index的存储路径,一般存储在data目录下,文件路径按实际情况自行定义。
log-bin-index = /home/datax/mysql/data/mysql8.0.18/3306/mysql-bin.index
#binlog数据格式,row或mixed
binlog_format = row
#超过30天的binlog删除
expire_logs_days = 30
#默认0,由文件系统控制binlog刷新,性能是最好的,断电丢失数据风险大,最安设置1,表示每次事务提交,binlog刷新,设置为0和1的写入性能差距高达5倍甚至更多,设置1不适合高并发,但安全。
sync_binlog = 1
#一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认binlog_cache_size大小32K
binlog_cache_size = 2M
#最大binlog缓存大小
max_binlog_cache_size = 8M
#binlog日志每达到设定大小后,会使用新的bin log日志。如mysql-bin.000002达到500M后,创建并使用mysql-bin.000003文件作为日志记录
max_binlog_size = 512M

# ---------------- InnoDB配置 ----------------
#这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲,专用mysql服务器设置的大小: 操作系统内存的70%-80%最佳。
innodb_buffer_pool_size = 12G
#默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核处理能力,提高并发量
innodb_thread_concurrency = 0
#排序缓冲大小
innodb_sort_buffer_size = 32M
#限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300
innodb_open_files = 2048
#意味着在事务提交前日志已被写入磁盘,设为1当然是最安全的,但性能页是最差的
innodb_flush_log_at_trx_commit = 1
#innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4
innodb_read_io_threads = 8
#innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4
innodb_write_io_threads = 8
#独线程清除操作是一类定期回收无用数据的操作,默认情况下参数设置为0(不使用单独线程),设置为 1 时表示使用单独的清除线程。建议为1
innodb_purge_threads = 1
#innodb主线程刷新缓存池中的数据,使脏数据比例小于90%
innodb_max_dirty_pages_pct = 90
#InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间,唯一缺点:单表增加过大,如超过100G
innodb_file_per_table = 1

# ---------------- innodb_log配置 ----------------
#此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1-8M之间
innodb_log_buffer_size = 8M
#此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间
innodb_log_file_size = 512M
#为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
innodb_log_files_in_group = 3
#这是InnoDB表的目录共用设置,文件路径按实际情况自行定义。
innodb_log_group_home_dir = /home/datax/mysql/data/mysql8.0.18/3306
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值