检测方式:此类情况出现时登录到vps中,输入如下代码 free -m 查看swap全部被使用 service mysql status 查看mysql运行状态 如果mysql停止运行,swap被占满,则属于这种情况。要解决这个问题,需要分为两个步骤,首先是将已经被占满的内存进行清理,其次是重新设置mysql服务。
一. 对swap进行清理
有两个可选的方案
当内存较小,而swap也已经占满,这是需要重启vps,采用如下命令: sudo reboot
当内存较大是,处于free的内存大于used的swap内存时,可以采用如下命令 sudo su sync swapoff -a swapon -a sync echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches 详细内容可参考ubuntu 手动释放缓存 (清理内存cache)
二. 对mysql进行配置
“出现建立数据库连接错误”的关键原因是mysql配置与vps硬件配置不相符,导致了mysql服务调用的内存大于实际物理内存,最终导致mysql服务停止。因此,需要调整mysql配置以使其符合实际硬件配置的可承受范围。mysql配置文件可以通过如下命令进行编辑 vim /etc/mysql/mysql.conf.d/mysqld.cnf 具体配置可以参考mySQL内存及虚拟内存优化设置