springboot以war包形式传到webapps下面,mysql创建库和表,war包里配置数据源是localhost,然后运行tomcat是没有问题的,可以访问通mysql正常请求服务。
ssm以war包形式传到webapps下面,mysql创建库和表,war包里配置数据源是localhost,然后运行tomcat,请求mysql 404请求不通,mysql不能返回数据,然后就是大量百度查没有解决,本来打算放弃了,但是把webapps下war包名字改了一下,然后重新请求竟然通了,莫非是没反应过来?奇怪!
然后由于tomcat一直在执行所以会把war包又解压一份,由于强迫症的我把war及解压了的war都删掉了,只保留了一份改了名字的已解压war,然后关闭服务器,在以为完事大吉的时候访问项目,发现mysql关了?然后打开服务器重新开启mysql,可怕的事情发生了,最恐怖的事情导致我一度初始化了服务器的错误,就是这个:Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/iZ2zef5lht8hg03cuycy96Z.pid),怎么解决呢?
查阅大批博客后,又查看了日志,总结如下:大概就是内存满了,没有办法把pid的文件写入data,然后错误日志显示大批innodb的问题,也就是没法为mysql的buffer pool分配128M的内存。原因很明显了,内存不足呗,查找资料后发现,原来这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲。我的服务器只有1G内存,所以这个参数开始为索引分配缓存的时候把mysql弄崩溃了。我这的原因应该就是上面删除war包的时候tomcat正在运行,然后就会不停解压,造成内存不够用。
突然访问mysql断了没访问通,不知道mysql出啥问题了,然后直接启动就又出老毛病了,阿里云工单提交了一手,他那边也是未做任何改动的,登陆我服务器使用 service mysqld restart 命令就启动成功了,内存资源足够,不重启服务器的话,mysql一般是不会自动关闭的,请我知悉。
可以执行cat /var/log/messages | grep "Out of memory" 看一下是否有内存不足日志,一般都是该问题,然后重启mysql,不行就重启服务器再重启mysql