原创

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

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


1、查看内存剩余量

[root@iZ256w2hluuZ ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           994        345        649          0          5         34
-/+ buffers/cache:        305        689
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),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信