前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql8.0 查询的时候自动退出,被杀死进程。

mysql8.0 查询的时候自动退出,被杀死进程。

作者头像
小贝壳
发布2020-03-06 17:12:52
1.4K0
发布2020-03-06 17:12:52
举报
文章被收录于专栏:贝塔博客贝塔博客

网上的方法千篇一律,在看到这篇文章,希望你有耐心的看完,可以帮助你解决问题。

原因

服务器内存过小,而mysql占用过多,导致被linux内核杀死。 首先通过free命令来查看内存,应该剩余不多。

代码语言:javascript
复制
free -m

解决办法

解决办法分为2个步骤,缺一不可。

    1. 调整缓冲区占用大小

这个值默认是128M,可以改成64M,32M等。

代码语言:javascript
复制
innodb_buffer_pool_size=32M
    1. 调整linux Swap/虚拟内存大小

这里推荐是512Mb,可以根据实际情况来调整,count的值就是缓冲区的大小

在/mnt/创建一个512M的512Mb.swap文件

代码语言:javascript
复制
sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512

注:bs = block size 区块大小; count = 区块个数;

格式化文件,使之成为swap(交换设备)

代码语言:javascript
复制
sudo mkswap /mnt/512Mb.swap

更改权限为0600,不然会报错

代码语言:javascript
复制
chmod 0600 /mnt/512Mb.swap

将swap加入到现有系统中

代码语言:javascript
复制
sudo swapon /mnt/512Mb.swap

编辑 /etc/fstab 文件

代码语言:javascript
复制
vim /etc/fstab

在文件末尾增加一句

代码语言:javascript
复制
/mnt/512Mb.swap  none  swap  sw  0 0

做永久性变更

代码语言:javascript
复制
sudo nano /etc/fstab

保存退出。这样重启后Swap分区也依然有效。

添加后我们可以通过free命令查看内存和缓冲区的大小

代码语言:javascript
复制
free -m

输出:

代码语言:javascript
复制
              total        used        free      shared  buff/cache   available
Mem:           3932        3404         317          22         210         268
Swap:          5120        1373        3747

我配置了2个缓冲区,总共5120M,大家可以根据自己的需要来调整大小。

注: 本文部分引用了:https://eliyar.biz/cannot-allocate-memory-for-the-buffer-pool/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原因
  • 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档