MYSQL在LINUX机器(4G内存)配置参数

机器硬件:
双核Linux2.6.9-42.ELsmp  i686 i686 i386 GNU/Linux
mysql  Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i386) using readline 4.3

shell > cat /etc/my.cnf

[client]
#password    = your_password
port        = 3306
socket        = /tmp/mysql.sock

[mysqld]
port        = 3306
socket        = /tmp/mysql.sock

skip-innodb

##禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注#意,如果开启该选项,则所有远程主机##连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
skip-name-resolve  

#避免MySQL的外部锁定,减少出错几率增强稳定性
skip-locking  


#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!
#否则将无法正常连接!
#skip-networking      ###需要远程传输数据,需要屏蔽
###skip-bdb              ###这个参数在机器上一用就报错

key_buffer = 640M
### 如果只用MyISAM表,那么设成可用内存的30%到40%。如果用的MySIAM表很少,
##那么可以把它设得比较少,但至少要有16-32M



#########key_buffer_size只对MyISAM表起作用
# key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。
#注意:该参数值设置的过大反而会是服务器整体效率降低!
####key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。一般我们设为16M,实际上稍微大一点的站点 
####这个数字是远远不够的,通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,
###至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE ‘key_read%’获得)。 或者如果你装了phpmyadmin 可以通过服务器运行状态看到,笔者推荐用phpmyadmin管理mysql,
###key_buffer_size – 128M
###key_read_requests – 650759289
###key_reads - 79112
###比例接近1:8000 健康状况非常好
key_buffer_size=512M     ###太大MYSQL起不来  , 设为 15%



#联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享!
join_buffer_size=8M       

sort_buffer=32M                  ### new
record_buffer=32M              ###new

max_allowed_packet = 4M

#指定MySQL允许的最大连接进程数。如果经常出现Too Many Connections的错误提 示,则需要增大该参数值。
max_connections=32000             ###new
max_connect_errors=30000     ###new

###对于200个表的运用1024比较好,我的表很多,设为10倍
table_cache = 10240

#查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!如果有100个连接,
#那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。
sort_buffer_size = 6M

#读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享!
read_buffer_size = 4M

read_rnd_buffer_size = 8M


myisam_sort_buffer_size = 128M

###建立连接和断开时的线程的创建和死亡开销很大。我一般把它设为至少16。如果程序中有大量并发连接,
###而变量Threads_Created(status中可以看到)长得很快,那么会设大一些。
###主要是让正常操作中不要去创建线程
thread_cache=32    #大量并发连接
thread_cache_size = 128


#指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察:
# > SHOW VARIABLES LIKE '%query_cache%';
# > SHOW STATUS LIKE 'Qcache%';
# 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
#如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;#Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。
query_cache_size = 512M            ##32M-512M就可以

query_cache_type=1

long_query_time=1                             ### new
max_heap_table_size=256M         ###new
tmp_table_size=256M                      ### new


#指定MySQL可能的连接数量。
#当MySQL主线程在很短的时间内接收到非常多的连接请求,该参数生效,主线程花费很短的时间检查连接并且启动一个新线程。
#back_log 参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多连
#接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。
#试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
back_log=384              

#指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10
wait_timeout=120                      
interactive_timeout=120                 

#local-infile=0                          ### 当使用本地导库时  'Load Data Local infile ...' 需要屏蔽


#该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8
thread_concurrency = 8

# Replication Master Server (default)
# binary logging is required for replication
#####log-bin=mysql-bin  ###  屏蔽日志


server-id  = 1


#
thread_stack=256K
##thead_cache_size=64 #此参数加入后,MYSQL运行不了


[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

### END

你可能感兴趣的:(mysql,linux,cache,socket,配置管理)