原创

阿里云服务器报错“建立数据库连接错误”

Linux的基本原则是没有资源应该被浪费.因此核心会使用尽可能多的RAM,来缓存来自本地和远程的文件系统的信息.系统做读写操作的时候,会将与当前运行的进程相关的数据尽量存储在RAM里.系统报告的缓存是缓冲和页缓存两者之和.缓存并不是在进程结束的时候被回收(你可能很快会启动另外一个进程,需要同样的数据),而是随需回收–比如,当你启动一个需要大量内存的进程时,Linux核心会从内存中回收缓存,将得到的内存分配给新的进程,可能原因是内存占满导致具体解决方案如下步骤:

1、查看内存剩余量

[root@iZ256w2hluuZ ~]# free -m
     total       used       free     shared    buffers     cached
Mem:   994345649  0  5 34
-/+ buffers/cache:305689
Swap:    0  0  0

物理已用内存 = 实际已用内存 - 缓冲 - 缓存,具体算法如下:

306M = 345M - 5M - 34M

物理空闲内存 = 总物理内存 - 实际已用内存 + 缓冲 + 缓存 

应用程序已用内存 = 实际已用内存 - 缓冲 - 缓存

2.修改mysql配置文件,具体命令如下:

[root@iZ256w2hluuZ ~]# vi /etc/my.cnf
输入/ 查找 max_connections,如果没有在mysqld下手动添加
max_connections = 50 #50最大连接数因服务器而定
# The MySQL server
[mysqld] 在这个下面添加max_connections = 50,:wq保存并退出,重启mysql服务,具体命令如下:
[root@iZ256w2hluuZ ~]# service mysqld restart

 

4.在查看剩余内存量,具体命令如下:

[root@iZ256w2hluuZ ~]# free -m

如果free值还是没有改变的话,继续操作下面的操作

 

5、清理下Mysql缓存,具体命令如下:

[root@iZ256w2hluuZ ~]# vi /etc/proc/sys/vm/drop_caches

把0改为3,:wq保存并退出

[root@iZ256w2hluuZ ~]# cd /etc/proc/sys/vm/
[root@iZ256w2hluuZ ~]# echo 3 > drop_caches

 

6、在重启mysql服务器,具体命令如下:

[root@iZ256w2hluuZ ~]# service mysqld restart

查看下剩余内存,此时应该已经改变如果还是没有改变可能是因为其他原因了。

~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信