• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MySql(MariaDB)在小内存VPS上崩溃,该怎么办?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近我遇到了一个奇怪的问题:我的一个小内存(512MB)虚拟专用服务器上,MariaDB数据库经常崩溃。经过一些短暂的搜索,我发现了MariaDB在小型RAM机器上有什么潜在的问题,以及如何解决这个问题。

首先,如果您有这种问题,请检查MariaDB日志:

tail -n 100 /var/log/mariadb/mariadb.log

你可能会发现这样的情况:

160608 12:08:05 InnoDB: Completed initialization of buffer pool
160608 12:08:05 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160608 12:08:05 [ERROR] Plugin 'InnoDB' init function returned error.
160608 12:08:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160608 12:08:05 [ERROR] mysqld: Out of memory (Needed 128917504 bytes)

经过一番研究,我发现mysql需要很多资源用于性能模式(Peformance Schema),而禁用它将有助于小内存机器正常运行。参靠在低内存虚拟机上启动MySQL

sudo vim /etc/my.cnf

添加:

performance_schema = off

放到下面这个section:

[mysqld]

为了确保数据库服务器能在崩溃时重新启动,在使用Systemd的操作系统上,如CentOS 7,您需要执行以下操作:

打开以下文件进行编辑:

sudo vim /etc/systemd/system/mariadb.service

添加下面几行:

.include /lib/systemd/system/mariadb.service

[Service]
Restart=always
RestartSec=3

然后您需要重新启动从而重导Systemd配置:

sudo systemctl daemon-reload

并重新启动MariaDB服务:

systemctl restart mariadb

为确保Systemd重新启动服务,您可以执行以下操作:

ps -ef|grep maria

你会看到如下内容:

mysql    26647 26368  0 Jun12 ?        00:06:22 /usr/libexec/mysqld ....

尝试使用下面的命令杀死进程:

kill 26647

等待3秒钟,并检查MariaDB是否重新启动:

ps -ef|grep maria

本文翻译自:MySql (MariaDB) crashes on small RAM VPS, what to do


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
在低内存虚拟机上启动MySQL发布时间:2022-05-14
下一篇:
Python urlparse函数详解发布时间:2022-05-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap