Chào các bạn, hôm nay Websitequangngai sẽ hướng dẫn cho các bạn cách fix lỗi “The YARPP database has an error which could not be fixed.” của plugin Yarpp.
Trong bài viết trước đây mình đã giới thiệu về plugin tự động tạo bài viết liên quan thông minh nhất là Yarpp ( Yet Another Related Post). Vừa qua, mình có cài plugin này để test trên localhost cho website In Việt Phát trước khi up lên host cho khách, bình thường thì khi up lên và thay đổi toàn bộ link localhost thành invietphat.com thì plugin yarpp sẽ hoạt động tốt. Nhưng vì một lý do khách quan mà khi up lên host thì bị báo lỗi “The YARPP database has an error which could not be fixed.” , nguyên nhân có thể là do plugin cache database gây ra lỗi này, hoặc do thao tác sai trong quá trình cài đặt plugin yarpp và cài đặt WordPress.
Thế nhưng thật ra bản chất của vấn đề không phải là ở những lý do trên, mà là do phiên bản phpMyadmin của bạn sử dụng tuy có thể là mới nhất, hoặc không hề lỗi thời mà là do kiểu dữ liệu được định dạng (storage engine) của bạn không tương thích với cơ chết hoạt động của Yarpp.
Để mình liệt kê cho các bạn nhé, thông thường sẽ có các storage engine như sau: innoDB, MRG_MYISAM, BLACKHOLE, CSV, MEMORY, ARCHIVE, và MyISAM. Đa phần phiên bản php của bạn khi tạo ra các bảng (table) sql sẽ có dạng innoDB . Để tìm hiểu việc nên dùng storage engine innoDB hay MyISam thì mình sẽ có một bài viết riêng.
Khi cài Yarpp vào website của bạn, nó sẽ tự động sinh ra một table có tên: wp_yarpp_related_cache .
Yarpp sẽ lấy dữ liệu từ table wp_post để thực hiện các truy vấn và cho phép hiển thị bài viết liên quan một cách thông minh nhất. Nhưng khi database của bạn là InnoDB cho cả hai table này thì sẽ có thể xuất hiện lỗi “The YARPP database has an error which could not be fixed.” nguyên nhân là Yarpp không hỗ trợ storage engine InnoDB mà chỉ hỗ trợ MyISAM .
Vậy làm sao để ta có thể thay đổi kiểu storage engine từ InnoDB qua MyISAM? Có hai cách để thực hiện việc này, nếu bạn là người từ học ngôn ngữ php và mysql thì bạn sẽ có thể câu lệnh để truy vấn, còn nếu bạn là người không biết gì về việc này thì bạn có thể dùng thao tác người dùng trên table là được.
Đăng nhập vào tài khoản phpMyadmin của website bạn, nếu bạn muốn thực hiện truy vấn đổi kiểu storage engine thì bạn gõ nút SQL trên thanh công cụ với dòng lệnh như sau:
[php]
ALTER TABLE tên_table ENGINE = MyISAM;
[/php]
Trong trường hợp này câu lệnh sẽ là:
[php]ALTER TABLE wp_yarpp_related_cache ENGINE = MyISAM;
ALTER TABLE wp_post ENGINE = MyISAM;
[/php]
Sau đó bản chỉ cần nhất nút “Go” ở góc phải bên dưới để hoàn thành việc chuyển đổi từ InnoDB sang MyISAM là được.
Nếu bạn là muốn sử dụng giao diện đơn giản mà phpMyadmin đã tạo ra, và không phải đụng đến câu lệnh cũng như không sợ gõ sai tên table thì bạn làm như sau: Click chuột vào table muốn đổi kiểu storage engine và click vào nút Operations có biểu tượng hình cờ lê trên thanh công cụ ở góc phải của table. Sau đó click vào Table Options và chọn Storage engine là MyISAM và nhấn nút “Go”. Làm tương tự với các table mà bạn muốn, và có thể chuyển đổi qua lại giữa các kiểu database theo ý bạn.
Kết quả sau khi đổi kiểu storage của table wp_post và wp_yarpp_related_cache được thể hiện ở hình bên dưới. Và bây giờ bạn sẽ không còn phải lo lắng về lỗi không hiển thị bài viết liên quan do “The YARPP database has an error which could not be fixed.” khi cài đặt và sử dụng plugin Yarpp.