打开网站MySQL报错:error establishing a database connection
安装LNMP 1.5版本,选择mysql5.6版本安装,网站偶尔出现数库连接错误导致挂掉。重启数据库又能连接上,看一下mysql错误日志,应该是内存占满导致的,2G内存的vps是伤不起的。。
MySQL重启的时候提示:
ERROR! MySQL server PID file could not be found! Gracefully shutting down php-fpm . done
mysql错误日志
2019-03-23 02:05:56 20778 [Note] InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 2019-03-23 02:05:56 20778 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
解决方式:
mysql5.6的默认配置是不适合小型站点的,linux在/etc/my.cnf里修改performance_schema_max_table_instances参数,有就修改,没有就追加:(参数根据自己的需求修改)
performance_schema_max_table_instances=400 table_definition_cache=400 table_open_cache=256
修改完毕后,重启mysql服务,lnmp mysql restart,然后top后发现内存占用少了.
如果使用以上办法还是降不下来,在MySQL 配置文件中增加:performance_schema = off
MySQL 5.5版本以后新增一个存储引擎:命名performance_schema ,主要用于收集数据库服务器性能参数。在 5.6 版本中开始默认开启的一项功能,它会在 MySQL 启动之后悄悄占用 400M 左右的内存来加速 MySQL 的运行——对于动辄近百的企业级服务器来说,可能不值一提,但是对于咱们这种屌丝小 vps (我这个 1GB 独立内存算是不错的了)来说,可就要顶了天了!
所以,要关闭 Performance Schema ,在你的 MySQL 配置文件的 [mysqld] 字段添加一句
performance_schema = off
重启mysql服务,lnmp mysql restart,然后top后发现内存占用快速降下来了.