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
Linux mysql 内存设置_MYSQL在LINUX机器(4G内存)配置参数
最新推荐文章于 2024-06-23 15:31:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)