Có thể một ngày đẹp trời, đang yên đang lành tự nhiên MySQL trong XAMPP lăn ra chết, không tài nào khởi động được! Bạn đã kiểm tra và thử đủ các cách kiểu như “Hướng dẫn sửa lỗi không start được MySQL trong XAMPP” hay “Di chuyển thư mục chứa database MySQL của webserver XAMPP” nhưng không hiệu quả. Bạn phải làm gì khi chưa kịp backup các database thành các file .sql?
Có vẻ hơi phức tạp nhỉ?! Đúng là cũng hơi phức tạp thật! Nhưng đừng lo, hãy cùng MyLop.BanMai.Info khắc phục lỗi khó chịu này nhé!
Bước 1. Backup thư mục data
Copy toàn bộ thư mục data trong thư mục cài đặt của XAMPP sang một nơi khác, VD copy sang E:/old-data. Giả sử thư mục cài XAMPP của bạn là D:/xampp thì thư mục data sẽ là D:/xampp/mysql/data
Bước này dùng để backup thư mục chứa các database mà bạn đang làm việc mà chưa kịp backup thành các file .sql lúc MySQL đang làm việc bình thường.
Bước 2. Restore MySQL về lúc mới cài
Bước này có hai cách làm. Một, cài đặt lại Xampp. Hai, đơn giản hơn, hãy làm theo các bước sau:
Bước 2.1: Xóa toàn bộ các file và thư mục bên trong thư mục D:/xampp/mysql/data. Lưu ý thư mục gốc data vẫn phải để nguyên. Sau bước này thư mục data đang trống.
Bước 2.2: Copy toàn bộ các file và thư mục con trong thư mục D:/xampp/mysql/backup và paste vào thư mục D:/xampp/mysql/data
Sau đó, hãy thử khởi động lại MySQL. Thật tuyệt, MySQL đã hoạt động trở lại! Thành công bước đầu vì hiện tại MySQL đã được restore về lúc mới cài, chưa có các database bạn đang làm việc.
Bước 3. Quan trọng
Tắt MySQL, copy 3 file ib_logfile0, ib_logfile1 và ibdata1 trong thư mục D:/xampp/mysql/data và paste vào một nơi an toàn, VD lưu vào E:/good-work
Bước 4. Restore thư mục data cũ
Bước 4.1: Vào thư mục data cũ đã backup ở “Bước 1”, VD E:/old-data
Bước 4.2: Copy toàn bộ các thư mục con chính là tên các database cũ (VD database1, database2,…) cùng 3 file ib_logfile0, ib_logfile1 và ibdata1
Bước 4.3: Paste (ghi đè nếu được hỏi) vào thư mục D:/xampp/mysql/data
Bước 4.4: Bật MySQL. Sau bước này, nếu vào phpMyAdmin chúng ta đã thấy các database cũ đã lên cùng với tên các bảng của chúng. Tuy nhiên khi click vào các bảng thì có thể sẽ có thông báo lỗi xuất hiện. Nếu điều đó xảy ra, hãy kiên trì để đi tiếp các bước sau, nếu không, xin chúc mừng, MySQL và database cũ của bạn đã hoạt động bình thường!
Bước 4.5: Khởi động CMD (Command Prompt) để Export database ra file .sql bằng lệnh: D:/xampp/mysql/bin/mysqldump -u root -p database1 > D:/database1.sql
với “database1” là tên CSDL bạn muốn export. Sẽ có một cửa sổ đòi nhập password (của MySQL) bạn cứ nhấn Enter là xong. Tiếp tục thực hiện lệnh trên cho các database khác (nhớ đổi tên “database1” thành các tên khác tương ứng)
Bước 4.6: Tắt MySQL. Copy 3 file ib_logfile0, ib_logfile1 và ibdata1 từ thư mục E:/good-work (ở “Bước 3”) ghi đè vào thư mục D:/xampp/mysql/data
Bước 4.7: Xóa các thư mục database cũ trong thư mục D:/xampp/mysql/data, VD xóa các thư mục “database1”, “database2” như trong VD ở “Bước 4.5”
Bước 4.8: Bật MySQL. Vào phpMyAdmin tạo mới các database có tên trùng với các database cũ, VD: “database1”, “database2”,… Sau đó thực hiện chức năng import dữ liệu từ các file database1.sql, database2.sql,… đã export ở “Bước 4.5” lần lượt cho các database tương ứng.
Bước này nếu không dùng chức năng import dữ liệu của phpMyAdmin thì có thể dùng CMD để thực hiện các lệnh kiểu thế này: D:/xampp/mysql/bin/mysql -u root -p database1 < D:/database1.sql
Phù, vậy là xong rồi đó! Trong phpMyAdmin, hãy tận hưởng thành quả bằng cách click thử vào các bảng trong các database xem nào! MyLop.BanMai.Info đã thực hiện thành công, còn bạn thì sao? Gook look!
Tham khảo:
Cheers,
Lục Đức Thành
Latest posts by Lục Đức Thành (see all)
- Cách hiển thị lượt truy cập ra ngoài front-end - 12/02/2023
- Sửa lỗi “không start được MySQL trong XAMPP” - 21/06/2020
- WordPress 5 có gì mới? - 23/12/2018
- Sublime Text 3 Portable Windows 64 bit - 11/12/2017
- Kỹ thuật nhúng font vào web và WordPress Theme - 12/11/2017