美文网首页
参考《MySQL管理之道》单机下的mysql的my.cnf配置

参考《MySQL管理之道》单机下的mysql的my.cnf配置

作者: 吹奏一池春水 | 来源:发表于2019-03-12 23:42 被阅读0次
参考《MySQL管理之道》去掉主从配置自己单机下的mysql的my.cnf配置
[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 22
port = 3306
user = mysql
basedir = /opt/mysql
datadir = /opt/mysqlData/data
tmpdir  = /opt/mysqlData/tmp
socket  = /tmp/mysql.sock
#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
skip-external-locking
#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve
default-storage-engine = INNODB
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#服务器关闭非交换连接之前等待活动的秒数,默认28800秒(注意:在 my.cnf 中修改这个参数需要配合interactive_timeout(超时间隔)参数一起修改,否则不生效)
#(Mysql 处理完一条连接后所等待释放的时间,如果并发很高,默认设置会导致最大连接被占满,出现 "too many connections" 错误)
#(如果这个值很低,比如5,可能会导致出现"ERROR 2006 (HY000) MySQL server has gone away"的错误,出现这个错误还有可能是max_allowed_packet设置过小)
interactive_timeout = 100
wait_timeout = 100
connect_timeout = 20
#在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
#官方建议back_log = 50 + (max_connections / 5),封顶数为900
back_log = 250
myisam_recover
#开启事件
event_scheduler = ON

###binlog###
log-bin = /opt/mysqlData/log/mysql-bin
binlog_format = row
max_binlog_size = 128M
binlog_cache_size = 2M
#binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days = 5

###slowlog###
slow_query_log = 1
slow_query_log_file = /opt/mysqlData/log/mysql.slow
long_query_time = 10

###errorlog###
log-error = /opt/mysqlData/log/error.log

###per-thread-buffers###
max_connections = 1000
max_connect_errors = 1000
key_buffer_size = 64M
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M
table_cache = 614
table_open_cache = 2000
table_definition_cache = 2000
sort_buffer_size = 256K
#用于表的顺序扫描,读出的数据暂存于read_buffer_size中,当buff满时或读完,将数据返回上层调用者,用于MyISAM
read_buffer_size = 256K
#用于表的随机读取,当按照一个非索引字段排序读取时会用到,用于MyISAM
read_rnd_buffer_size = 256K
join_buffer_size = 256K
#内部内存临时表的最大值,比如大数据量的group by,order by时可能用到临时表,超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
#禁用mysql的缓存查询结果集功能,后期根据业务情况测试决定是否开启,大部分情况下关闭下面两项
query_cache_type = 0
query_cache_size = 0
bulk_insert_buffer_size = 32M
thread_cache_size = 64
thread_concurrency = 32
thread_stack = 256K

###InnoDB###
innodb_data_home_dir = /opt/mysqlData/data
#设置redoLog文件所在目录, redoLog记录事务具体操作内容
innodb_log_group_home_dir = /opt/mysqlData/log
innodb_data_file_path = ibdata1:1G:autoextend
#一般设置物理存储的60% ~ 70%
innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 8
innodb_additional_mem_pool_size = 16M
#该值减少脏数据刷新到磁盘的频次
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
#在innodb_log_group_home_dir中的redoLog文件数, redoLog文件内容是循环覆盖写入。
innodb_log_files_in_group = 3
#只有在操作系统崩溃或者系统掉电的情况下,上一秒钟所有事务数据才可能丢失
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 90
innodb_support_xa = 1
#限制并发线程的数量
#(1)如果一个工作负载中,并发用户线程的数量小于64,建议设置innodb_thread_concurrency=0;
#(2)如果工作负载一直较为严重甚至偶尔达到顶峰,建议先设置innodb_thread_concurrency=128,
#并通过不断的降低这个参数,96, 80, 64等等,直到发现能够提供最佳性能的线程数
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 500
innodb_file_io_threads = 4
innodb_concurrency_tickets = 1000
log_bin_trust_function_creators = 1
#O_DIRECT减少操作系统级别VFS的缓存和Innodb本身的buffer缓存之间的冲突
innodb_flush_method = O_DIRECT
innodb_file_per_table
innodb_read_io_threads = 4
innodb_write_io_threads = 4
#提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力,默认值200(单位:页),可根据磁盘近期的IOPS确定该值
innodb_io_capacity = 500
#此格式支持压缩
innodb_file_format = Barracuda
#后台清理工作的线程数
innodb_purge_threads = 1
innodb_purge_batch_size = 32
innodb_old_blocks_pct = 75
innodb_change_buffering = all
#所有发生的死锁错误信息记录到error.log中,之前通过命令行只能查看最近一次死锁信息
innodb_print_all_deadlocks = 1
transaction_isolation = READ-COMMITTED

[mysqldump]
quick
max_allowed_packet = 128M
myisam_max_sort_file_size = 10G

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 256k
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
#增加每个进程的可打开文件数量
open-files-limit = 28192

相关文章

网友评论

      本文标题:参考《MySQL管理之道》单机下的mysql的my.cnf配置

      本文链接:https://www.haomeiwen.com/subject/cahapqtx.html