Mặc định, tiền tố bảng trong WordPress là “wp_”, điều này có thể khiến trang web dễ bị tấn công nếu hacker đoán được cấu trúc cơ sở dữ liệu. Vì vậy, việc thay đổi table_prefix không chỉ giúp tăng cường bảo mật mà còn giúp bạn kiểm soát dữ liệu tốt hơn. Trong bài viết này, Tino sẽ hướng dẫn bạn cách thay đổi table_prefix trong WordPress một cách an toàn và hiệu quả.
Định nghĩa table_prefix
Table_prefix là gì?
Table_prefix là một chuỗi ký tự được thêm vào trước tên của các bảng trong cơ sở dữ liệu, nhằm mục đích phân biệt và tổ chức các bảng một cách rõ ràng hơn, đặc biệt khi có nhiều ứng dụng hoặc hệ thống cùng sử dụng chung một cơ sở dữ liệu. Yếu tố này thường được sử dụng để tránh xung đột tên giữa các bảng, đảm bảo tính duy nhất cho mỗi bảng và giúp quản lý cơ sở dữ liệu hiệu quả hơn.

Ví dụ, trong một hệ thống quản lý nội dung (CMS) như WordPress, table_prefix mặc định thường là “wp_”, vì vậy các bảng trong cơ sở dữ liệu sẽ có dạng như “wp_posts”, “wp_users”,…
Việc sử dụng table_prefix cũng rất hữu ích khi cần triển khai nhiều phiên bản khác nhau của cùng một ứng dụng trên cùng một cơ sở dữ liệu, vì nó cho phép phân tách dữ liệu của từng phiên bản mà không gây nhầm lẫn.
Tại sao nên thay đổi table_prefix trong WordPress?
Tăng cường bảo mật cho cơ sở dữ liệu
Vì wp_ là tiền tố mặc định mà hầu hết các trang WordPress sử dụng, hacker có thể dễ dàng đoán được cấu trúc bảng dữ liệu của bạn. Nếu trang web bị tấn công SQL Injection, hacker có thể khai thác lỗ hổng và truy vấn trực tiếp vào các bảng cơ sở dữ liệu quan trọng như wp_users, wp_options,… Việc thay đổi table_prefix giúp làm cho cơ sở dữ liệu khó đoán hơn, giảm nguy cơ bị tấn công.
Ngăn chặn các cuộc tấn công SQL Injection tự động
Nhiều bot và hacker sử dụng các đoạn mã độc để quét và tấn công hàng loạt các trang WordPress có table_prefix mặc định. Nếu bạn thay đổi nó thành một tiền tố ngẫu nhiên như wp_xyz123_, các công cụ tấn công tự động sẽ khó có thể hoạt động chính xác, giúp bảo vệ trang web tốt hơn.

Tránh xung đột khi sử dụng nhiều website trong một cơ sở dữ liệu
Nếu bạn chạy nhiều trang WordPress trên cùng một cơ sở dữ liệu mà không thay đổi table_prefix, các bảng dữ liệu có thể bị trùng lặp. Việc thay đổi tiền tố giúp bạn dễ dàng quản lý và phân biệt các bảng thuộc các trang web khác nhau.
Dễ dàng quản lý và tối ưu hóa cơ sở dữ liệu
Khi bạn sử dụng tiền tố bảng tùy chỉnh, bạn có thể dễ dàng nhận diện và quản lý các bảng dữ liệu của mình mà không bị nhầm lẫn với các cài đặt mặc định. Điều này cũng giúp bạn tối ưu cơ sở dữ liệu khi cần thiết.
Hướng dẫn cách thay đổi table_prefix trong WordPress
Cách 1: Thay đổi table_prefix thông qua wp-config.php và phpMyAdmin
Bước 1: Trước khi thay đổi, bạn cần sao lưu toàn bộ cơ sở dữ liệu và file WordPress để có thể khôi phục lại nếu gặp lỗi. Bạn có thể sử dụng:
- Plugin sao lưu: UpdraftPlus, All-in-One WP Migration.
- Sao lưu thủ công: Xuất cơ sở dữ liệu từ phpMyAdmin và tải toàn bộ file qua FTP.
Bước 2: Sử dụng FTP, cPanel File Manager hoặc SSH để truy cập thư mục gốc WordPress (thường là public_html)

Mở file wp-config.php.

Tìm dòng sau trong file wp-config.php:
$table_prefix = 'wp_';

Thay đổi wp_ thành một tiền tố mới (ví dụ: wp_secure123_):
$table_prefix = 'wp_secure123_';
Nhấn Save changes để lưu lại file wp-config.php
Bước 3: Sau khi thay đổi table_prefix trong wp-config.php, bạn cần đổi tên tất cả các bảng trong phpMyAdmin.
- Truy cập phpMyAdmin trên hosting qua cPanel hoặc FTP.
- Chọn database WordPress của bạn.
- Bạn sẽ thấy danh sách các bảng có tiền tố wp_.
- Đổi tên từng bảng bằng cách chạy truy vấn SQL:
RENAME TABLE wp_posts TO wp_secure123_posts;
RENAME TABLE wp_comments TO wp_secure123_comments;
RENAME TABLE wp_options TO wp_secure123_options;
RENAME TABLE wp_postmeta TO wp_secure123_postmeta;
RENAME TABLE wp_terms TO wp_secure123_terms;
RENAME TABLE wp_term_taxonomy TO wp_secure123_term_taxonomy;
RENAME TABLE wp_term_relationships TO wp_secure123_term_relationships;
RENAME TABLE wp_termmeta TO wp_secure123_termmeta;
RENAME TABLE wp_users TO wp_secure123_users;
RENAME TABLE wp_usermeta TO wp_secure123_usermeta;

Bước 4: Một số dữ liệu trong cơ sở dữ liệu vẫn sử dụng table_prefix cũ. Bạn cần cập nhật lại bằng SQL:
Cập nhật bảng wp_options:
SELECT * FROM wp_secure123_options WHERE option_name LIKE '%wp_%';
Nếu có kết quả, hãy cập nhật lại từng dòng với tiền tố mới.
Cập nhật bảng wp_usermeta:
SELECT * FROM wp_secure123_usermeta WHERE meta_key LIKE '%wp_%';
Sau đó sửa meta_key thành tiền tố mới trong các dòng liên quan.
Bước 5: Xóa cache của website nếu bạn sử dụng plugin cache. Sau đó, truy cập lại website để kiểm tra xem có lỗi gì không.
Nếu website gặp lỗi, hãy kiểm tra lại:
- File wp-config.php có đúng tiền tố không.
- Các bảng trong phpMyAdmin đã đổi đúng tên chưa.
- Kiểm tra lỗi trong file error_log nếu cần.
Cách 2: Dùng plugin để thay đổi table_prefix
Nếu không muốn chỉnh sửa cơ sở dữ liệu thủ công, bạn có thể sử dụng plugin Brozzme DB Prefix & Tools Addons để tự động thay đổi table_prefix.
Bước 1: Truy cập trang quản trị WordPress. Sau đó, chuyển đến mục Plugins -> Add New Plugin .
Bước 2: Tìm kiếm và cài đặt plugin Brozzme DB Prefix change and DB Tools addon. Kích hoạt plugin sau khi cài đặt.

Bước 3: Vào Tools -> DB PREFIX.
Chọn tên tiền tố mới hoặc để random.

Nhấn Change DB Prefix để thay đổi.
Những lưu ý quan trọng trước khi thay đổi table_prefix trong WordPress
Sao lưu toàn bộ cơ sở dữ liệu trước khi thực hiện thay đổi
Trước khi thay đổi table_prefix trong WordPress, việc đầu tiên và quan trọng nhất là sao lưu toàn bộ cơ sở dữ liệu. Đây là bước không thể bỏ qua vì bất kỳ sai sót nào trong quá trình thay đổi có thể dẫn đến mất dữ liệu hoặc làm hỏng cấu trúc bảng, khiến trang web không hoạt động được.
Chọn table_prefix mới một cách cẩn thận
Khi chọn table_prefix mới, bạn cần đảm bảo rằng nó là duy nhất, ngắn gọn và tuân thủ các quy tắc đặt tên trong MySQL (chẳng hạn, chỉ sử dụng ký tự chữ cái, số và dấu gạch dưới, không bắt đầu bằng số). Table_prefix mới không nên quá dài để tránh gây khó khăn trong việc quản lý hoặc truy vấn cơ sở dữ liệu. Đồng thời, hãy tránh sử dụng các tiền tố phổ biến hoặc dễ đoán như “wp_”, “test_”, hay “admin_” để tăng cường bảo mật cho hệ thống.

Kiểm tra và chỉnh sửa tệp wp-config.php
Tệp wp-config.php chứa thông tin cấu hình kết nối cơ sở dữ liệu của WordPress, bao gồm giá trị table_prefix. Trước khi thay đổi table_prefix trong cơ sở dữ liệu, bạn cần chỉnh sửa giá trị này trong tệp wp-config.php để đảm bảo rằng WordPress sẽ nhận diện đúng các bảng với tiền tố mới. Hãy kiểm tra kỹ lưỡng để tránh lỗi chính tả hoặc sai sót trong quá trình chỉnh sửa, vì điều này có thể khiến trang web không hoạt động.
Cập nhật tên tất cả các bảng trong cơ sở dữ liệu
Sau khi thay đổi table_prefix trong tệp wp-config.php, bạn cần đổi tên tất cả các bảng trong cơ sở dữ liệu để phù hợp với tiền tố mới. Ví dụ, nếu table_prefix cũ là “wp_” và bạn muốn đổi thành “custom_”, thì các bảng như “wp_posts”, “wp_users” cần được đổi thành “custom_posts”, “custom_users”. Điều này có thể thực hiện thông qua công cụ quản lý cơ sở dữ liệu như phpMyAdmin hoặc sử dụng các plugin chuyên dụng.
Cập nhật các tùy chọn và dữ liệu trong bảng wp_options và wp_usermeta
Ngoài việc đổi tên bảng, bạn cũng cần kiểm tra và cập nhật các giá trị trong bảng wp_options (hoặc tương ứng với tiền tố mới) và bảng wp_usermeta. Một số mục trong các bảng này có thể vẫn tham chiếu đến table_prefix cũ, chẳng hạn như các khóa meta hoặc tùy chọn liên quan đến người dùng. Nếu không cập nhật những giá trị này, trang web có thể gặp lỗi hoặc không hiển thị đúng thông tin.
Kiểm tra toàn bộ trang web sau khi thay đổi
Sau khi hoàn tất việc thay đổi table_prefix, bạn cần kiểm tra toàn bộ trang web để đảm bảo rằng mọi chức năng đều hoạt động bình thường. Kiểm tra các tính năng như đăng nhập, đăng xuất, tạo bài viết, tải lên media và các plugin đang sử dụng. Nếu phát hiện bất kỳ lỗi nào, hãy xem lại các bước đã thực hiện và khắc phục kịp thời. Đảm bảo rằng không có lỗi SQL hoặc thông báo lỗi nào xuất hiện trên giao diện người dùng.
Xóa cache và kiểm tra hiệu suất
Nếu bạn đang sử dụng các plugin hoặc dịch vụ cache, hãy xóa toàn bộ cache sau khi thay đổi table_prefix. Việc này giúp đảm bảo rằng các phiên bản cũ của trang web không còn được lưu trữ và người dùng sẽ nhìn thấy phiên bản cập nhật. Ngoài ra, hãy kiểm tra hiệu suất của trang web để đảm bảo rằng việc thay đổi table_prefix không ảnh hưởng tiêu cực đến tốc độ tải trang hoặc các chức năng khác.
Kết luận
Mặc dù không phải là giải pháp bảo mật duy nhất, nhưng khi kết hợp với các biện pháp khác như sử dụng firewall, hạn chế quyền truy cập cơ sở dữ liệu, cài đặt plugin bảo mật, việc thay đổi table_prefix sẽ giúp giảm đáng kể nguy cơ bị tấn công. Nếu bạn chưa thay đổi table_prefix, hãy cân nhắc thực hiện ngay hôm nay để bảo vệ website của mình!
Những câu hỏi thường gặp
Thay đổi table_prefix có làm mất dữ liệu không?
Không, nếu thực hiện đúng cách, bạn sẽ không mất dữ liệu. Tuy nhiên, nếu có sai sót trong quá trình đổi tên bảng hoặc cập nhật dữ liệu liên quan, website có thể bị lỗi. Vì vậy, bạn nên sao lưu cơ sở dữ liệu trước khi thực hiện.
Khi nào không nên thay đổi table_prefix?
Bạn không nên thay đổi table_prefix nếu:
- Không có bản sao lưu trước khi thực hiện (vì nếu lỗi xảy ra, bạn sẽ khó khôi phục).
- Website đã quá lớn và có quá nhiều plugin lưu dữ liệu liên quan (có thể gây lỗi).
- Không có kinh nghiệm làm việc với database (có thể gây lỗi không thể khắc phục).
Tôi có thể đổi table_prefix nhiều lần không?
Có thể, nhưng không nên làm quá thường xuyên vì:
- Một số plugin có thể gặp lỗi khi tiền tố thay đổi liên tục.
- Mỗi lần thay đổi, bạn cần cập nhật lại tất cả các bảng trong database.
Thay đổi table_prefix có giúp tăng tốc WordPress không?
Không, việc thay đổi table_prefix không ảnh hưởng đến tốc độ của WordPress. Điều này chỉ giúp tăng cường bảo mật, không tác động đến hiệu suất tải trang.