首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL服务停止,尽管Restart=Always

MySQL服务停止,尽管Restart=Always
EN

Server Fault用户
提问于 2018-10-24 09:41:14
回答 3查看 3.8K关注 0票数 2

我有一个Amazont2.小型EC2 -1核心和2GB内存,这超过了CentOS和Virtualmin的最低要求

我的系统:

  • CentOS 7.5.1804
  • 维图阿明
  • MySQL 5.5.60-MariaDB
  • Apache 2.4.6

一个月前,经过多次访问,MySQL服务总是停止工作,我可以从Webmin重新启动它,直到我在DigitalOcean博客中阅读了一篇文章,将Restart=Always添加到文件/etc/systemd/system/multi-user.target.wants/mariadb.service中,然后通过终止该进程来测试它,然后该服务再次自动启动-- 22天内停止运行

现在,服务再次停止工作,我打开了mariadb.service文件,我发现行Restart=Always仍然在那里,但是服务随机停止。

注意:我仍然可以从Webmin启动它--没有问题,但是所有的网站都因为DB连接而不可用。

我需要追踪这个问题,但我对这类问题没有经验。如何解决这个问题?

MySQL配置: my.conf

代码语言:javascript
复制
symbolic-links=0
innodb_file_per_table = 1
myisam_sort_buffer_size = 8M
read_rnd_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
sort_buffer_size = 512K
table_open_cache = 64
max_allowed_packet = 1M
key_buffer_size = 16M

来自{var/log/messages}的一些行

代码语言:javascript
复制
Oct 22 16:49:49 ns1 kernel: Out of memory: Kill process 13092 (mysqld) score 97 or sacrifice child

Oct 22 16:49:49 ns1 kernel: Killed process 13092 (mysqld) total-vm:1065992kB, anon-rss:182972kB, file-rss:0kB, shmem-rss:0kB

Oct 22 16:49:49 ns1 kernel: [12822]    27 12822    28326       73      14        0             0 mysqld_safe


Oct 23 08:58:11 ns1 kernel: [12822]    27 12822    28326       74      14        0             0 mysqld_safe
Oct 23 08:58:11 ns1 kernel: [19703]    27 19703   266425    39874     150        0             0 mysqld

Oct 23 20:04:47 ns1 saslauthd[531]: do_auth         : auth failure: [user=mysql] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]

Oct 23 22:21:25 ns1 kernel: [12822]    27 12822    28326       74      14        0             0 mysqld_safe
Oct 23 22:21:25 ns1 kernel: [19703]    27 19703   266425    48494     161        0             0 mysqld
Oct 23 22:21:25 ns1 kernel: Out of memory: Kill process 19703 (mysqld) score 103 or sacrifice child
Oct 23 22:21:25 ns1 kernel: Killed process 19703 (mysqld) total-vm:1065700kB, anon-rss:193976kB, file-rss:0kB, shmem-rss:0kB
Oct 23 22:21:25 ns1 kernel: [12822]    27 12822    28326       74      14        0             0 mysqld_safe
Oct 23 22:39:58 ns1 kernel: [12822]    27 12822    28326       76      14        0             0 mysqld_safe
Oct 23 22:39:58 ns1 kernel: [19246]    27 19246   266716    16891      98        0             0 mysqld
Oct 23 22:40:02 ns1 kernel: [12822]    27 12822    28326       76      14        0             0 mysqld_safe
Oct 23 22:40:02 ns1 kernel: [19246]    27 19246   266938    17064      98        0             0 mysqld
Oct 23 22:40:05 ns1 kernel: mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
Oct 23 22:40:05 ns1 kernel: mysqld cpuset=/ mems_allowed=0
Oct 23 22:40:05 ns1 kernel: CPU: 0 PID: 19357 Comm: mysqld Kdump: loaded Not tainted 3.10.0-862.11.6.el7.x86_64 #1
EN

回答 3

Server Fault用户

回答已采纳

发布于 2018-11-06 02:37:18

最后,在经过12天的测试之后,我找到了解决方案,在经过数百个页面访问后,自动终止了MySQL启动。

答案取决于问题系统OS (CentOS)和MySQL Mariadb服务

解决方案:只需在make服务启动前添加几秒钟--在我的例子中,我增加了45秒

在{/etc/systemd/system/multi-user.target.wants/mariadb.service}中的服务部分下添加以下行-当然路径取决于您的系统OS和MySQL服务名称(并不是所有的都有mariadb.service)

代码语言:javascript
复制
Restart=always
RestartSec=45s

不要忘记运行以下命令

代码语言:javascript
复制
sudo systemctl daemon-reload

sudo systemctl restart mariadb.service
票数 1
EN

Server Fault用户

发布于 2018-10-24 13:44:53

不知道。我首先要说的是那些普通的嫌疑犯

  • 检查磁盘空间状态,以确保安全df -h和内存空闲-m正常运行时间(在崩溃后检查)
  • 检查数据目录上的所有权和权限是否已更改
票数 0
EN

Server Fault用户

发布于 2018-10-24 15:20:09

在您的日志输出中的这一行:Oct 22 16:49:49 ns1 kernel: Out of memory: Kill process 13092 (mysqld) score 97 or sacrifice child

可以看出,您的系统内存不足,Linux (内存不足)杀手确实阻止了mysqld(MySQL守护进程)进程。

Restart=部分的描述中可以看出,如果the service is stopped with systemctl stop or an equivalent operation的话,它不会重新启动,也许OOM杀手与systemd相当,我不知道。

危险区

通过添加禁用OOM杀灭来禁用此功能,您似乎可以为您的流程添加OOMScoreAdjust=-1000

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/936938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档