เมื่อคุณจัดการกับเซิร์ฟเวอร์ Linux ที่มีฐานข้อมูล เหตุการณ์ที่ไม่คาดคิดของการหยุดบริการ mysqld ด้วยเหตุผลต่าง ๆ ไม่ใช่สถานการณ์ที่ดี ในคู่มือนี้คุณจะเรียนรู้วิธีเริ่ม MySQL โดยอัตโนมัติหากมีการหยุดจากเหตุใดๆ โดยใช้สคริปต์และ crontab
เนื้อหา
เนื่องจากเหตุที่ไม่ทราบบางประการ daemon mysqld อาจหยุดโดยไม่ได้รับการเริ่มต้นอัตโนมัติในบางช่วงเวลา โดยเนื่องจากบันทึกเซิร์ฟเวอร์ไม่ช่วยมาก เราได้ค้นหาทางออกในการตรวจสอบการทำงานของ mysqld service และหากมันไม่ทำงานให้เริ่มต้นผ่าน crontab
วิธีเริ่ม MySQL โดยอัตโนมัติเมื่อมีการหยุด? [Linux]
ในเซิร์ฟเวอร์ MySQL ที่ใช้ MariaDB ตามปกติ mysqld service ควรเริ่มต้นใหม่โดยอัตโนมัติเมื่อหยุดจากเหตุไหน ๆ หากไม่เป็นเช่นนั้นสคริปต์ด้านล่างจะตรวจสอบเป็นประจำว่า daemon mysqld ทำงานหรือไม่ และช่วยคุณเริ่ม MySQL โดยอัตโนมัติหากมีการหยุด
การทดสอบของฉันเสร็จสิ้นบนระบบปฏิบัติการ Debian 12, MariaDB 10.11.4.
1. เปิดคอนโซลและสร้างไฟล์สำหรับสคริปต์ในอนาคตที่จะเริ่มบริการ mysqld หากหยุดทำงาน
ฉันชอบใช้โปรแกรมแก้ไข "nano
"
sudo nano /usr/local/bin/autostart_mysql.sh
2. ในไฟล์ใหม่ “autostart_mysql.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
3. บันทึกไฟล์ใหม่ “autostart_mysql.sh
“ จากนั้นตั้งค่าการอนุญาตดำเนินการ
chmod +x /usr/local/bin/autostart_mysql.sh
4. ไปที่ “/usr/local/bin/
” และทดสอบสคริปต์ตามคำสั่ง: “./autostart_mysql.sh
"
![วิธีเริ่ม MySQL โดยอัตโนมัติเมื่อมีการหยุด? [Linux]](https://stealthsettings.com/wp-content/uploads/2023/11/Autostart-mysql-service.webp)
ตอนนี้สคริปต์ที่คุณเริ่มต้น MySQL จะทำงานโดยอัตโนมัติเมื่อดำเนินการด้วยตนเองเท่านั้น เมื่อเพิ่มเข้าไปใน crontab แล้ว มันจะทำงานเป็นระยะตามช่วงเวลาที่เรากำหนด ฉันเลือกว่าสคริปต์ "autostart_mysql.sh
” ให้รันทุกๆ 3 นาที
วิธีการเพิ่มสคริปต์ใน crontab?
หากต้องการเพิ่มสคริปต์ให้กับ crontab เพื่อให้ทำงานเป็นระยะ ตามช่วงเวลาที่คุณกำหนด ให้รันคำสั่ง: crontab -e
จากนั้นเพิ่มบรรทัดคำสั่งที่ส่วนท้ายของไฟล์
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
ระบุว่าสคริปต์จะถูกดำเนินการทุกๆ 3 นาที
บันทึก crontab และออกจากโปรแกรมแก้ไข
หลังจากขั้นตอนนี้ ให้ตรวจสอบบริการ mysqld
โดยจะดำเนินการทุกๆ 3 นาที และหากบริการหยุดให้บริการจะเริ่มโดยอัตโนมัติ
หากคุณต้องการความช่วยเหลือหรือคำชี้แจงอื่น ๆ เรายินดีที่จะตอบความคิดเห็นของคุณ