mysql数据库优化

这几天总是有些人无聊攻击我的服务器,总是导致内存不足,这样他总是杀我的mysql进程,我部署在阿里云的服务器,内存很小才1G,阿里云安装的服务器没有虚拟内存,只要一受到攻击,就会被系统kill掉,mysql进程,这苦恼了好久啊!然后呢看了数据表的引擎是InnoDB,InnoDB的默认缓存大小为128MB,我把它改小点测试,杀掉几率小了很多,大家可以尝试一下,以centos为例:打开my.cnf文件。编辑

1
2
cd /etc 
vi my.cnf

找到下图位置:

innodb_buffer_pool

或者是这样

1
2
3
4
5
6
7
8
9
10
11
[mysqld]
#这样占用内存就很小了 100+左右
max_connections = 150
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

去掉#号,然后改成你想要的数值,增大可以增加访问速度,但是要依你的服务器,如果配置低,还是设置小一点。推荐几十M就可以,不要太大!这样遇到DDOS,服务器崩溃的几率就小了!希望能解决您的问题!

感谢老板!