Cảnh báo: Tôi mất dữ liệu database trên 29 site — Đây là những gì đã xảy ra và cách bảo vệ bản thân
Chuyện gì đã xảy ra
Tôi dùng Local by Flywheel lâu rồi với 29+ site WordPress, tất cả lưu trên ổ riêng (F:WebserverSource). Một ngày đẹp trời mở Local lên thì mọi site đều không start được với cùng một lỗi:
Uh-oh! Unable to start site.
mysqladmin: connect to server at '::1' failed
Can't connect to MySQL server on '::1' (10061)
Không update Windows, không cài phần mềm mới, không dùng công cụ dọn rác. Chỉ qua một đêm là hỏng.
Nguyên nhân #1: Port bị trùng trong sites.json (MySQL crash)
Sau khi đọc log tại:
C:Users<tên>AppDataRoamingLocallocal-lightning.log
Phát hiện lỗi nghiêm trọng: site code-wp.com bị tất cả các service dùng chung một port 10774 — có thể do Local bị crash trong lúc tạo site. Điều này khiến MySQL crash khi khởi động và kéo theo tất cả site khác không lên được.
Cách fix: Sửa thủ công sites.json, gán port riêng biệt cho từng service.
Nguyên nhân #2: Database lưu trong AppData — rất dễ mất
Đây là vấn đề quan trọng hơn tôi muốn cảnh báo mọi người.
Local lưu database MySQL/MariaDB thật sự tại:
C:Users<tên>AppDataRoamingLocalrun<id ngẫu nhiên>
Trong 29 site của tôi, chỉ còn 7 thư mục trong run — số còn lại biến mất không rõ lý do.
Các file appsqllocal.sql trong thư mục source? Đó chỉ là file SQL mặc định lúc cài WordPress, không phải backup data thật. Đừng tin vào chúng.
Điều này có nghĩa là:
- File WordPress (theme, plugin, uploads) an toàn nếu lưu ở ổ riêng
- Database — bài viết, đơn hàng, cài đặt, tài khoản — có thể mất hoàn toàn
Những gì Local KHÔNG làm mặc định
- ❌ Không tự động backup DB khi tắt site
- ❌ Không cảnh báo khi thư mục
runcủa site bị mất - ❌ Không phát hiện port trùng trong
sites.json - ❌ DB lưu trong
AppData— nơi dễ bị công cụ dọn rác xóa nhất
Cách bảo vệ bản thân
- Export site thường xuyên qua tính năng Export của Local
- Cài UpdraftPlus hoặc All-in-One WP Migration trên mọi site quan trọng, backup tự động ra Google Drive hoặc ổ ngoài
- Loại trừ thư mục Local khỏi phần mềm dọn rác — whitelist
AppDataRoamingLocal - Backup thủ công thư mục
runđịnh kỳ sang ổ khác - Kiểm tra sites.json sau mỗi lần Local crash để phát hiện port trùng
Đề xuất cho Local team
- Tự động export SQL khi stop site
- Cảnh báo port trùng trước khi start
- Cho phép người dùng tự chọn nơi lưu database
- Hiển thị cảnh báo khi thư mục
runbị thiếu
Hy vọng bài này giúp được người khác tránh khỏi tình huống tương tự. Luôn giữ backup bên ngoài — đừng tin tưởng hoàn toàn vào bất kỳ công cụ dev local nào để bảo vệ data của bạn.


Bài viết liên quan