MySQL 服務停止但重新啟動 = 始終
我有一個 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