mariadb 配置mysql_mysql-mariadb实践中用到的配置(不断完善中)

#基本配置

port=3306

pid-file=/mnt/mysql/data/mysql.pid

socket=/tmp/mysql.sock

datadir=/data/mysql/data

skip-name-resolve                #跳过dns解析

character_set_server=utf8

default_storage_engine=InnoDB    #默认库的存储引擎

default_table_type=InnoDB        #默认表的存储引擎

wait_timeout=60                  #sleep状态超时时间

max_connections=2000             #最大连接数

max_connect_errors=1000          #最大错误连接数

#日志相关的配置

log_error=/mnt/mysql/data/err.log

slow_query_log=ON

slow_query_log_file=/mnt/mysql/data/slow.log

long_query_time=1          #记录超过1s的慢查询

bin_log=mysql-bin          #开启二进制日志格式

binlog_format=statement    #二进制日志记录格式

expire_logs_days=7         #设置二进制日志保留的时间

#主从场景从库相关配置

log_slave_updates     #在从库开启二进制日志

relay-log=relay-bin

skip_slave_start      #重启mysql后,不自动启动复制

relay-log-purge       #重放完中继日志后将此中继日志删除

read_only             #设置从库为只读,除了root和sql复制线程

innodb_locks_unsafe_for_binlog=1 #禁止二进制日志的记录

#优化相关的配置

max_allow_packet=1G

innodb_file_per_table=1           #为每张表使用一个表文件,存储格式为“表名.ibd”

innodb_data_file_path=ibdata1:10M;ibdata2:100M:autoextend    #单独指定数据文件的路径与大小,并且自增长

innodb_data_home_dir=/data/mysql#数据文件的存放位置,此目录必须存在

sync_binlog=0                     #由操作系统决定什么时候刷新缓存到持久化设备

innodb_flush_method=O_DIRECT      #使用fsync()来刷新文件到操作系统,但会通知操作系统不缓存数据

innodb_buffer_pool_size=20G       #设置innodb缓冲池大小,建议为物理内存的80%左右

innodb_log_buffer_size=8M         #设置日志缓冲大小

innodb_log_file_size=100M         #设置事务日志文件(日志文件是操作系统内存)大小,此参数可有效提高性能

innodb_log_files_in_group=3       #设置事务日志个数,日志文件总大小是每个文件的大小之和

innodb_flush_log_at_trx_commit=2  #每秒刷新一次日志文件到持久化存储,当系统断电会丢失一秒的数据,但性能是最高的

innodb_thread_concurrency=8       #并发限制,限制一次性可以有多少线程进入内核,0表示不限制,thread_concurrency应设为CPU核数的2倍

innodb_thread_sleep_delay=10000   #当线程超过并发限制时,需要等待的时间,单位为微秒

innodb_fast_shutdown=0            #在关闭数据库时的一种操作,是最慢的一种关闭方式,但在恢复时是最快的

innodb_max_dirty_pages_pct=10     #设置innodb缓冲池中可以保持的最大'脏页'数,其值是一个百分比

query_cache_type=on               #开启查询缓存,除非证明有效,否则不建议开启此参数

query_cache_size=10M              #查询缓存,一次性分配并初始化这块内存

sort_buffer_size=2M               #排序缓存,只有在查询需要做排序操作时才会为该缓存分配内存,一旦需要则分配全部内存

table_cache_size=10               #可以缓存的表个数

thread_cache_size=10              #线程池缓冲的线程个数,可以通过Threads_connected来个数进行设置

open_files_limit=65535            #设置可以打开文件句柄个数,尽可能的要大

#不理解的相关参数

innodb_file_per_table=1和innodb_data_file_path之间的关系是什么?

innodb_locks_unsafe_for_binlog=1:禁止二进制日志有什么用?跟bin_log参数是否有冲突?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值