Centos7

MySQL 服務停止但重新啟動 = 始終

  • November 6, 2018

我有一個 Amazon t2.small EC2 - 1 核和 2GB RAM,它超過了 CentOS 和 Virtualmin 的最低要求

我的系統:

  • CentOS 7.5.1804
  • 虛擬機
  • MySQL 5.5.60-MariaDB
  • 阿帕奇 2.4.6

MySQL 服務在經過多次訪問後總是在一個月前停止工作,我可以再次從 Webmin 重新啟動它,直到我閱讀 DigitalOcean 部落格中的一篇文章,在文件 [ /etc/systemd/system/中添加 [ Restart=Always ] multi-user.target.wants/mariadb.service ],我通過終止程序來測試它,然後服務自動重新啟動22 天沒有停止

現在服務再次停止工作,我打開了

$$ mariadb.service $$文件我找到了這條線$$ Restart=Always $$仍然存在,但服務隨機停止。 注意:我仍然可以從 Webmin 啟動它,沒有問題,但是由於數據庫連接,所有網站都變得不可用。

我需要追踪這個問題,但我沒有解決此類問題的經驗.. 如何解決這個問題?

MySQL 配置:my.conf

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 }中的一些行

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

最後,我在測試 MySQL 啟動後自動殺死數百頁訪問後 12 天找到了解決方案。

答案取決於問題 System OS (CentOS) and MySQL Mariadb service

**解決方案:**只需在啟動服務之前添加幾秒鐘 - 在我的情況下,我添加了 45 秒

在下面添加以下行

$$ service $${ /etc/systemd/system/multi-user.target.wants/mariadb.service } 中的部分 - 當然路徑取決於您的系統作業系統和 MySQL 服務名稱(並非所有都有 mariadb.service)

Restart=always
RestartSec=45s

不要忘記執行以下命令

sudo systemctl daemon-reload

sudo systemctl restart mariadb.service

引用自:https://serverfault.com/questions/936938