MariaDB/MySQL là gì? Cách tạo database cho WordPress trên VPS

MySQL hoặc MariaDB là hệ database WordPress dùng để lưu bài viết, trang, user, cấu hình theme/plugin và nhiều dữ liệu quan trọng khác. Khi cài WordPress trên VPS, bạn nên tạo database riêng, user riêng, mật khẩu mạnh và chỉ cấp quyền cần thiết thay vì dùng tài khoản root.

Sơ đồ WordPress kết nối MySQL trên VPS

Nếu bạn cài WordPress trên VPS bằng tay, phần dễ bị xem nhẹ nhất thường là database. Nhiều người chỉ nhớ tải mã nguồn WordPress, cấu hình web server và trỏ domain, nhưng lại tạo database bằng tài khoản root hoặc dùng mật khẩu quá đơn giản. Tôi không khuyến khích cách đó, nhất là với website đang làm SEO hoặc có dữ liệu khách hàng.

Trong bài này, tôi sẽ giải thích MySQL/MariaDB là gì, WordPress dùng database để làm gì và cách tạo database an toàn hơn trên VPS Ubuntu. Bạn không cần trở thành DBA, nhưng nên hiểu đủ để không tự làm rủi ro cho website của mình.

MySQL và MariaDB là gì trong WordPress?

MySQL là hệ quản trị cơ sở dữ liệu quan hệ. MariaDB là một nhánh tương thích cao với MySQL, được dùng rất phổ biến trên server Linux. Với WordPress, bạn có thể dùng MySQL hoặc MariaDB; cả hai đều lưu các dữ liệu như bài viết, trang, user, comment, tùy chọn plugin, menu và cấu hình theme.

Nói ngắn gọn: file WordPress quyết định website chạy như thế nào, còn database giữ phần lớn nội dung và cấu hình của website. Nếu mất thư mục theme, bạn còn có thể cài lại. Nếu mất database mà không có backup, website gần như mất phần quan trọng nhất.

Sơ đồ WordPress kết nối PHP và MySQL trên VPS
WordPress không chỉ là bộ file PHP; phần nội dung quan trọng nằm trong database.

WordPress lưu những gì trong database?

WordPress không lưu bài viết trong từng file HTML riêng lẻ. Khi bạn đăng một bài mới, nội dung được ghi vào database. Khi người đọc mở bài, WordPress lấy dữ liệu từ database, chạy qua theme và plugin, rồi xuất HTML ra trình duyệt.

  • wp_posts: bài viết, trang, revision, attachment.
  • wp_postmeta: metadata của bài viết, ví dụ Rank Math, ảnh đại diện, custom field.
  • wp_options: cấu hình site, plugin, theme, cache.
  • wp_users và wp_usermeta: tài khoản và quyền người dùng.
  • wp_terms, wp_term_taxonomy, wp_term_relationships: chuyên mục, thẻ và quan hệ phân loại.

Vì vậy, khi tối ưu hoặc di chuyển WordPress, bạn cần backup cả file lẫn database. Chỉ copy thư mục wp-content là chưa đủ.

Cần chuẩn bị gì trước khi tạo database trên VPS?

Trước khi chạy lệnh, bạn nên có một VPS đã cài MySQL hoặc MariaDB, có quyền sudo/root, biết tên database muốn tạo và chuẩn bị một mật khẩu mạnh cho user WordPress. Nếu VPS đang chạy website thật, hãy backup trước khi chỉnh.

Lưu ý an toàn: không nên cho WordPress dùng tài khoản root của MySQL. Hãy tạo một user riêng, chỉ cấp quyền trên database của website đó. Khi một website gặp sự cố, thiệt hại sẽ được giới hạn tốt hơn.
Checklist tạo database MySQL cho WordPress trên VPS
Tạo database an toàn cần đủ database, user riêng, mật khẩu mạnh và quyền vừa đủ.

Cách tạo database MySQL cho WordPress trên VPS Ubuntu

Ví dụ dưới đây dùng MySQL/MariaDB trên Ubuntu. Bạn có thể đổi tên database, user và mật khẩu theo website của mình.

sudo mysql

Sau đó tạo database:

CREATE DATABASE wordpress_site DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Tạo user riêng cho website:

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'MatKhau_Rat_Manh_Thay_Di';

Cấp quyền cho user này trên đúng database vừa tạo:

GRANT ALL PRIVILEGES ON wordpress_site.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Điểm quan trọng ở đây là wp_user chỉ có quyền trên wordpress_site, không phải toàn bộ MySQL server. Với một VPS chạy nhiều website, cách tách quyền này rất đáng làm.

Cấu hình database trong wp-config.php như thế nào?

Khi cài WordPress, bạn cần điền bốn thông tin chính: tên database, user, mật khẩu và host database. Nếu database nằm trên cùng VPS, host thường là localhost.

define( 'DB_NAME', 'wordpress_site' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'MatKhau_Rat_Manh_Thay_Di' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

Nếu bạn chạy WordPress bằng Docker, giá trị DB_HOST có thể là tên service hoặc container database, ví dụ db, mysql hoặc wp_db. Đây là lỗi tôi thấy khá thường xuyên: database vẫn chạy, user đúng, mật khẩu đúng, nhưng WordPress không kết nối được vì host sai.

Nên dùng MySQL hay MariaDB cho WordPress?

Với phần lớn website WordPress, cả MySQL và MariaDB đều dùng được. MySQL phổ biến, tài liệu nhiều, tương thích tốt. MariaDB cũng rất phổ biến trên các stack Linux truyền thống, nhẹ và quen thuộc với nhiều quản trị viên.

Tiêu chí MySQL MariaDB
Tương thích WordPress Tốt Tốt
Dễ tìm tài liệu Rất nhiều Nhiều
Phù hợp người mới
Khi nào chọn Muốn theo chuẩn phổ biến, cloud/database managed Muốn stack Linux quen thuộc, nhẹ, dễ dùng

Điều quan trọng hơn không phải tên MySQL hay MariaDB, mà là bạn cấu hình quyền user, charset utf8mb4, backup và bảo mật đúng.

Lỗi thường gặp khi tạo database WordPress trên VPS là gì?

Lỗi phổ biến nhất là Error establishing a database connection. Khi gặp lỗi này, đừng vội cài lại WordPress. Hãy kiểm tra từng điểm: tên database có đúng không, user có tồn tại không, mật khẩu có ký tự đặc biệt bị copy sai không, database service có chạy không và DB_HOST có đúng môi trường không.

sudo systemctl status mysql
sudo mysql -u wp_user -p wordpress_site

Nếu đăng nhập được bằng user WordPress, khả năng cao database và quyền đã ổn. Lúc đó bạn quay lại kiểm tra wp-config.php, cache cấu hình hoặc host kết nối.

Checklist tạo database an toàn cho WordPress

Tôi thường đi theo checklist ngắn này để tránh lỗi nhỏ nhưng tốn thời gian:

  • Tạo database riêng cho từng website.
  • Tạo user MySQL riêng, không dùng root cho WordPress.
  • Dùng mật khẩu dài, khó đoán và không tái sử dụng.
  • Dùng charset utf8mb4 để hỗ trợ tiếng Việt, emoji và ký tự hiện đại.
  • Backup database định kỳ, nhất là trước khi update theme/plugin/core.
  • Không mở MySQL ra Internet nếu không thật sự cần.
  • Ghi chú cấu hình ở nơi an toàn, không lưu mật khẩu trong file công khai.

Nên đọc tiếp gì nếu bạn đang dựng WordPress trên VPS?

Câu hỏi thường gặp về database MySQL cho WordPress

WordPress bắt buộc phải dùng MySQL không?

WordPress cần một hệ database tương thích MySQL. Trên thực tế, bạn có thể dùng MySQL hoặc MariaDB vì cả hai đều được dùng rất phổ biến cho WordPress.

Có nên dùng tài khoản root MySQL cho WordPress không?

Không nên. Bạn nên tạo user riêng cho từng website và chỉ cấp quyền trên database tương ứng để giảm rủi ro khi website hoặc plugin gặp sự cố bảo mật.

DB_HOST nên để localhost hay IP VPS?

Nếu database chạy cùng VPS, thường dùng localhost. Nếu chạy Docker, DB_HOST thường là tên service/container. Nếu database nằm máy khác, bạn cần hostname hoặc IP riêng và cấu hình firewall phù hợp.

utf8mb4 có cần thiết không?

Có. utf8mb4 giúp WordPress lưu tiếng Việt, emoji và nhiều ký tự Unicode đầy đủ hơn. Đây là lựa chọn nên dùng cho website mới.

Lỗi Error establishing a database connection là do đâu?

Thường do sai tên database, user, mật khẩu, DB_HOST, quyền user chưa đúng hoặc dịch vụ MySQL/MariaDB chưa chạy. Hãy kiểm tra từng điểm trước khi cài lại WordPress.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *