เมื่อจัดการเซิร์ฟเวอร์ฐานข้อมูล Linux การปิดบริการ mysqld โดยไม่คาดคิดอาจทำให้เกิดความไม่สะดวกอย่างมาก ในบทช่วยสอนนี้ คุณจะเห็นวิธีการเริ่ม MySQL โดยอัตโนมัติหากหยุดด้วยเหตุผลหลายประการโดยใช้สคริปต์และ crontab
ด้วยเหตุผลที่ไม่ชัดเจน mysqld daemon อาจหยุดกะทันหันและไม่รีสตาร์ทโดยอัตโนมัติในบางสถานการณ์หรือบางเวลา เนื่องจากไฟล์บันทึกของเซิร์ฟเวอร์ไม่ได้ให้ข้อมูลที่เป็นประโยชน์ในเรื่องนี้ ฉันจึงมองหาวิธีแก้ไขเพื่อตรวจสอบสถานะของบริการ mysqld ดังนั้นในสถานการณ์ที่ไม่ได้ใช้งาน ควรเริ่มการรีสตาร์ทอัตโนมัติโดยใช้ cronjob
เรามาดูบทช่วยสอนแบบทีละขั้นตอนเพื่อแก้ไขปัญหานี้ (ทดสอบแล้ว. Linux Debian 12)
วิธีเริ่ม MySQL โดยอัตโนมัติหากหยุดทำงาน
ขั้นตอนแรกคือการสร้างสคริปต์ที่จะรีสตาร์ทบริการ mysqld หากหยุดทำงาน
1. เปิดตัวแก้ไขข้อความ (เช่น nano
หรือ vi
) และคัดลอกสคริปต์ด้านล่างไปยังไฟล์ใหม่ ตัวอย่างเช่น คุณสามารถใช้:
nano /path/to/your/script.sh
คัดลอกสคริปต์:
#!/bin/bash
if systemctl is-active mysqld > /dev/null; then
echo "The mysqld service is running."
else
echo "The mysqld service is not running. Restarting..."
systemctl start mysqld
fi
บันทึกและปิดโปรแกรมแก้ไขข้อความ
2. ให้สิทธิ์ในการรันสคริปต์เพื่อให้แน่ใจว่าสามารถรันได้:
chmod +x /path/to/your/script.sh
3. เพิ่มสคริปต์ด้านล่างลงใน crontab (สั่งการ: crontab -e
อนุญาตให้คุณแก้ไข):
*/3 * * * * /path/to/your/script.sh
บรรทัดด้านบนระบุว่าสคริปต์จะทำงานทุกๆ 3 นาที เครื่องหมาย */3
หมายถึง "ทุกๆ 3 นาที" โดยพื้นฐานแล้ว ด้วยบรรทัดนี้ คุณจะเริ่ม MySQL โดยอัตโนมัติ script.sh
.
4. บันทึกและปิดไฟล์ crontab.
ตอนนี้สคริปต์ของคุณ script.sh
จะทำงานอัตโนมัติทุกๆ 3 นาที เพื่อตรวจสอบสถานะการให้บริการ mysqld
และรีสตาร์ทหากจำเป็น
หากมีสิ่งผิดปกติเกิดขึ้นและคุณต้องการความช่วยเหลือ เรายินดีที่จะตอบความคิดเห็นของคุณ