Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รีสตาร์ท MySQL Server ด้วยคำสั่ง RESTART

ใช้คำสั่ง RESTART เพื่อรีสตาร์ท MySQL Server (ต้องมีสิทธิ์ SHUTDOWN)

ไวยากรณ์

RESTART;

ตรวจสอบเวอร์ชันก่อนรีสตาร์ท

mysql> SELECT VERSION();

รันคำสั่ง RESTART

mysql> RESTART;
Query OK, 0 rows affected (0.00 sec)

กรณีที่ 1: ระหว่างรีสตาร์ท (Connection Lost)

ถ้าพยายามรันคำสั่งระหว่างรีสตาร์ท จะได้ error:

mysql> SHOW DATABASES;
ERROR 2013 (HY000): Lost connection to MySQL server during query

กรณีที่ 2: รีสตาร์ทเสร็จสิ้น (Reconnected)

หลังรีสตาร์ทเสร็จ Connection ใหม่จะถูกสร้างขึ้น:

mysql> SELECT VERSION();

ผลลัพธ์:

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: sample
+-----------+
| VERSION() |
+-----------+
| 8.0.12    |
+-----------+

ข้อสังเกต

  • คำสั่ง RESTART ใช้ได้ใน MySQL 8.0+
  • ต้องมีสิทธิ์ SHUTDOWN privilege
  • Client จะพยายาม reconnect อัตโนมัติ (ถ้ารองรับ)
  • Connection ID จะเปลี่ยนหลัง reconnect

วิธีรีสตาร์ทอื่นๆ (ระบบปฏิบัติการ)

  • Linux systemd: sudo systemctl restart mysqld หรือ sudo systemctl restart mysql
  • Windows Services: net stop mysql80 แล้ว net start mysql80
  • macOS Homebrew: brew services restart mysql
  • Docker: docker restart mysql-container

คำเตือน

รีสตาร์ทจะตัดการเชื่อมต่อทั้งหมด ทำให้ transaction ที่ยังไม่ commit หายไป ควรทำในช่วง maintenance window