1问题由来
1. 问题描述
频繁出现如下现象:
(1)访问网站提示“数据库连接失败”。
(2)登录到服务器执行mysql -uroot -p也连接不上,重新启动mysql服务之后,恢复正常。
1 |
service mysql start |
2. 问题解决
其实就是通过下文中设置apache2就可以了,但是分析过程是包括了如下两个步骤。最后在查看apache的acess的log中,发现了好多了“post xmlrpc.php“的日志,才知道了问题根源是xmlrc攻击。可以参考如下:
2 查看数据失败日志
1. 查看/var/log/mysql/error.log
2016-09-29 12:28:58 1703 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2016-09-29 12:28:58 1703 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2. 解决方法
(1)在下面/etc/my.cnf文件中添加如下两行(服务器内存为2G)
1 2 3 |
[mysqld] innodb_buffer_pool_size=1024M |
(2) 重启服务
1 |
service mysql restart |
(3) 查看
1 2 3 4 5 6 7 8 9 10 11 |
mysql> show variables like '%pool_size%'; +---------------------------------+----------+ | Variable_name | Value | +---------------------------------+----------+ | innodb_additional_mem_pool_size | 8388608 | | innodb_buffer_pool_size | 67108864 | |
3. 结果
发现不起作用,过了一会,数据库又断了,此时就想看看在apach的access.log中是否有很多请求,然后发现了很多”post xmlrpc.php”的请求,见下面章节。
3 查看apache的日志
1. 查看apacehe的access.log
(1)路径
/var/log/apache2/access.log
(2)日志
191.96.249.53 – – [29/Sep/2016:19:41:47 +0800] “POST /xmlrpc.php HTTP/1.0” 403 469 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)”
191.96.249.53 – – [29/Sep/2016:19:41:47 +0800] “POST /xmlrpc.php HTTP/1.0” 403 469 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)”
2.解决方案
(1)sudo vi /etc/apache2/sites-available/000-default.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<VirtualHost> … <files xmlrpc.php> order allow,deny deny from all </files> </VirtualHost> |
(2)重启apache
1 |
sudo /etc/init.d/apache2 restart |