MySQL /etc/my.cnf文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
[client]
port = 3306
socket =  /var/lib/mysql/mysql .sock
default-character- set  = utf8
 
[mysql]
no-auto-rehash           #仅允许使用键值的updates和deletes
 
[mysqldump]
quick
max_allowed_packet = 64M
 
[mysqld]
basedir =  /usr/local/mysql
datadir =  /var/lib/mysql
port = 3306
socket =  /var/lib/mysql/mysql .sock
 
server- id  = 1
log-bin =  /data/mysql/binlog/mysql-bin
relay-log =  /data/mysql/binlog/mysql-relay-bin
binlog-cache-size = 4M           #设置二进制日志缓存大小
max_binlog_cache_size = 8M       #最大的二进制Cache日志缓冲尺寸
max_binlog_size = 1G             #单个二进制日志文件的最大值,默认1G,最大1G
sync -binlog = 1                  #每隔N秒将缓存中的二进制日志记录写回硬盘
binlog_format = mixed           #二进制日志格式(mixed、row、statement)
#log_slave_updates = 1          #从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中
expire_logs_days = 30            #二进制日志文件过期时间
replicate-wild- do -table=testdb1.%
replicate-wild- do -table=testdb2.%
replicate-wild- do -table=testdb3.%
 
log-error =  /data/mysql/log/mysql_error .log      #错误日志文件路径
back_log = 384                   #指出在MySQL暂时停止响应新请求之前,短时间内的多少个请求
character- set -server = utf8      #默认字符集
external-locking = FALSE         #避免外部锁定(减少出错几率,增加稳定性)
skip-name-resolv                 #禁止外部连接进行DNS解析
thread_concurrency = 32          #CPU核数的两倍
default-storage-engine=InnoDB    #默认表的类型为InnoDB
transaction_isolation = READ-COMMITTED   #事务隔离级别
 
open_files_limit = 65535         #Mysql能打开文件的最大个数
max_connections = 5000           #指定MySQL允许的最大连接进程数
max_connect_errors = 6000        #设置每个主机的连接请求异常中断的最大次数
max_allowed_packet = 16M         #服务器一次能处理的最大的查询包的值
wait_timeout = 120               #指定一个请求的最大连接时间
interactive_timeout = 8          #连接保持活动的时间
thread_stack = 192K              #设置Mysql每个线程的堆栈大小,默认值足够大,可满足普通操作
 
long_query_time = 2              #指定多少秒未返回结果的查询属于慢查询
#slow_query_log = on            #开启慢查询
#slow_query_log_file = /data/mysql/slow.log     #指定慢查询日志文件路径
#log-queries-not-using-indexes  #记录所有没有使用到索引的查询语句
#min_examined_row_limit = 1000  #记录那些由于查找了多余1000次而引发的慢查询
#log-slow-admin-statements      #记录那些慢的OPTIMIZE TABLE,ANALYZE TABLE和ALTER TABLE语句
#log-slow-slave-statements      #记录由slave所产生的慢查询
 
table_open_cache = 512           #设置高速缓存表的数目
tmp_table_size = 64M             #设置内存临时表最大值
max_heap_table_size = 64M        #独立的内存表所允许的最大容量
thread_cache_size = 64           #服务器线程缓存数,与内存大小有关(建议大于3G设置为64)
#query_cache_size = 32M          #指定MySQL查询缓冲区的大小
query_cache_limit = 2M           #只有小于此设置值的结果才会被缓存
query_cache_min_res_unit = 2k    #设置查询缓存分配内存的最小单位
 
key_buffer_size = 32M            #指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能
sort_buffer_size = 2M            #设置查询排序时所能使用的缓冲区大小,系统默认大小为2MB
join_buffer_size = 2M            #联合查询操作所能使用的缓冲区大小
read_buffer_size = 4M            #读查询操作所能使用的缓冲区大小
read_rnd_buffer_size = 16M       #设置进行随机读的时候所使用的缓冲区
bulk_insert_buffer_size = 8M     #若经常使用批量插入的特殊语句来插入数据,可以适当调整参数至16MB~32MB,建议8MB
 
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover                   #自动检查和修复没有适当关闭的MyISAM表
 
innodb_additional_mem_pool_size = 16M    #设置InnoDB存储的数据目录信息和其他内部数据结构的内存池大小
innodb_buffer_pool_size = 128M           #InnoDB使用一个缓冲池来保存索引和原始数据
innodb_file_io_threads = 4               #InnoDB中的文件I/O线程,通常设置为4
innodb_thread_concurrency = 8            #服务器有几个CPU就设置为几,建议用默认设置,一般设为8
innodb_flush_log_at_trx_commit = 2       #设置为0就等于innodb_log_buffer_size队列满后再统一存储,默认为1
innodb_log_buffer_size = 16M     #默认为1MB,通常设置为6-8MB就足够
innodb_log_file_size = 128M      #确定日志文件的大小,更大的设置可以提高性能,但也会增加恢复数据库的时间
innodb_log_files_in_group = 3    #为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
innodb_max_dirty_pages_pct = 90  #InnoDB主线程刷新缓存池中的数据
innodb_lock_wait_timeout = 120   #InnoDB事务被回滚之前可以等待一个锁定的超时秒数
innodb_file_per_table = 0        #InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间,0关闭,1开启

本文转自 HMLinux 51CTO博客,原文链接:http://blog.51cto.com/7424593/1752592