ใช้คำสั่ง 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+ - ต้องมีสิทธิ์
SHUTDOWNprivilege - 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