|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!Mysql的优化设置
翻开/etc/my.cnf文件,修正以下设置,假如没有,可手动增加。调剂设置时,请实事求是,这与你的办事器的设置有关,出格是内存巨细。以下设置对照合适于1G内存的办事器,但其实不相对。
#指定索引缓冲区的巨细,它决意索引处置的速率,特别是索引读的速率。经由过程反省形态值Key_read_requests和Key_reads,能够晓得key_buffer_size设置是不是公道。比例key_reads/key_read_requests应当尽量的低,最少是1:100,1:1000更好(上述形态值可使用showstatuslikekey_reads取得)。key_buffer_size只对MyISAM表起感化。即便你不利用MyISAM表,可是外部的一时磁盘表是MyISAM表,也要利用该值。可使用反省形态值created_tmp_disk_tables得知概况。
key_buffer=384M
#请求MySQL能有的毗连数目。当次要MySQL线程在一个很短工夫内失掉十分多的毗连哀求,这就起感化,然后主线程花些工夫(只管很短)反省毗连而且启动一个新线程。back_log值指出在MySQL临时中断回覆新哀求之前的短工夫内几个哀求能够被存在仓库中。只要假如希冀在一个短工夫内有良多毗连,你必要增添它,换句话说,这值对到来的TCP/IP毗连的侦听行列的巨细。你的操纵体系在这个行列巨细上有它本人的限定。试图设定back_log高于你的操纵体系的限定将是有效的。默许数值是50
back_log=200
#一个包的最年夜尺寸。动静缓冲区被初始化为net_buffer_length字节,可是可在必要时增添到max_allowed_packet个字节。缺省地,该值太小必能捕获年夜的(大概毛病)包。假如你正在利用年夜的BLOB列,你必需增添该值。它应当象你想要利用的最年夜BLOB的那末年夜。
max_allowed_packet=4M
#同意的同时客户的数目。增添该值增添mysqld请求的文件形貌符的数目。这个数字应当增添,不然,你将常常看到Toomanyconnections毛病。默许数值是100
max_connections=1024
#指定表高速缓存的巨细。每当MySQL会见一个表时,假如在表缓冲区中另有空间,该表就被翻开并放进个中,如许能够更快地会见表内容。经由过程反省峰值工夫的形态值Open_tables和Opened_tables,能够决意是不是必要增添table_cache的值。假如你发明open_tables即是table_cache,而且opened_tables在不休增加,那末你就必要增添table_cache的值了(上述形态值可使用showstatuslikeOpen_tables取得)。注重,不克不及自觉地把table_cache设置成很年夜的值。假如设置得太高,大概会形成文件形貌符不敷,从而形成功能不不乱大概毗连失利。
table_cache=512
#每一个线程排序所需的缓冲
sort_buffer_size=4M
#当一个查询不休地扫描某一个表,MySQL会为它分派一段内存缓冲区。read_buffer_size变量把持这一缓冲区的巨细。假如你以为一连扫描举行得太慢,能够经由过程增添该变量值和内存缓冲区巨细进步其功能。
read_buffer_size=4M
#减速排序操纵后的读数据,进步读分类行的速率。假如正对远宏大于可用内存的表实行GROUPBY或ORDERBY操纵,应增添read_rnd_buffer_size的值以减速排序操纵前面的行读取。仍旧不分明这个选项的用途……
read_rnd_buffer_size=8M
#用于REPAIRTABLE。不分明这个选项的用途,百度上找到的设置偏向也是八门五花,有128M、64M、32M等,折衷选一个。
myisam_sort_buffer_size=64M
#能够复用的保留在中的线程的数目。假如有,新的线程从缓存中获得,当断开毗连的时分假如有空间,客户的线置在缓存中。假如有良多新的线程,为了进步功能能够这个变量值。经由过程对照Connections和Threads_created形态的变量,能够看到这个变量的感化。
thread_cache_size=128
#查询了局缓存。第一次实行某条SELECT语句的时分,办事器记着该查询的文本内容和它前往的了局。办事器下一次碰着这个语句的时分,它不会再次实行该语句。作为取代,它间接从查询缓存中的失掉了局并把了局前往给客户端。
query_cache_size=32M
#最年夜并发线程数,cpu数目*2
thread_concurrency=2
#设置超不时间,能制止长毗连
wait_timeout=120
#封闭不必要的表范例,假如你必要,就不要加上这个
skip-innodb
skip-bdb
关于mysql的优化设置及反省,这篇文章很值得一看http://tech.itdb.cn/n/200607/27/n20060727_30398.shtml
-----------------------------------------------------------------------------------------------
Mysql的宁静设置
翻开/etc/my.cnf文件,修正以下设置,假如没有,可手动增加。
#作废文件体系的内部锁
skip-locking
#不举行域名反剖析,注重由此带来的权限/受权成绩
skip-name-resolve
#克制MySQL顶用“LOADDATALOCALINFILE”下令。这个下令会使用MySQL把当地文件读到数据库中,然后用户就能够不法猎取敏感信息了。收集下流传的一些打击***中就有效它的,它也是良多新发明的SQLInjection打击使用的手腕!
local-infile=0
#封闭近程毗连,即3306端口。这是MySQL的默许监听端口。因为此处MySQL只办事于当地剧本,以是不必要近程毗连。只管MySQL内建的宁静机制很严厉,但监听一个TCP端口仍旧是伤害的举动,由于假如MySQL步伐自己有成绩,那末未受权的会见完整能够绕过MySQL的内建宁静机制。(你必需断定,你是不是真的不必要近程毗连mysql)
skip-networking
修正完my.cnf后,还必要对mysql的用户名、帐号、及默许数据库举行调剂
起首先登录mysql,在终端窗口输出/home/mysql/bin/mysql-uroot-p
然后会提醒输出暗码,输出准确暗码后,会呈现mysql>提醒符。
输出以下下令:
mysql>usemysql;
mysql>updateusersetuser="centos"whereuser="root";(将mysql的root用户名修正成centos,避免root的暗码被暴力破解)
mysql>selectHost,User,Password,Select_priv,Grant_privfromuser;
mysql>deletefromuserwhereuser=;(删除user用户)
mysql>deletefromuserwherepassword=;(删除user用户)
mysql>deletefromuserwherehost=;(删除user用户)
mysql>dropdatabasetest;(删除默许的test数据库)
mysql>flushprivileges;(革新mysql的缓存,让以上设置当即失效)
mysql>quit;
为了使以上优化和宁静设置失效,请重启Mysql办事或Linux。如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|