Chủ Nhật, 3 tháng 5, 2026

MySQL không connect được? 7 lý do "trời ơi đất hỡi" khi làm web miễn phí (InfinityFree edition )

Mò mẫm MySQL luôn luôn giống như...thám hiểm hang động! Vừa háo hức, vừa...lo lắng! Bạn đã làm được một việc rất đáng "tự hào":

Bạn "tâm huyết" tạo một website "hoành văn tráng" miễn phí trên InfinityFree

Upload file PHP lên.

Mở trình duyệt thấy web chạy. Dù chỉ vài dòng text, vài hình ảnh


Bạn bắt đầu nâng cấp level:

"Giờ mình làm login + database cho nó sang xịn mịn!"


Theo "bài bản" đã tham khảo, bạn viết:

$conn = mysqli_connect("localhost", "root", "123456", "test");


Bấm chạy…


Và…


Warning: mysqli_connect(): (HY000/2002): Connection failed


Bạn ngồi im rất "hàn lâm"… rồi nghĩ:

"Ủa… mình làm đúng hết rồi mà???", "OK, kiểm tra lại lần nữa....Đúng hết rồi mà ta?!!"


Không. Bạn sai… nhưng là sai kiểu ai cũng từng sai 


Khi dùng hosting miễn phí như InfinityFree, lỗi không connect được MySQL thường do:

  • sai host (KHÔNG phải localhost)
  • sai username/password
  • sai database name
  • chưa tạo database



Sự thật quan trọng (vỡ... mộng chiều xuân!)


Khi dùng InfinityFree:

KHÔNG dùng:

  • localhost
  • root
  • 123456


Thay vào đó, bạn sẽ có dạng (không nhất thiết giống, nhưng nói chung không phải theo kiểu...localhost):

  • Host: sqlXXX.infinityfree.com
  • Username: abc_12345678
  • Password: ********
  • Database: abc_12345678_dbname


Nếu bạn vẫn dùng "localhost + root"


Khả năng cao MySQL sẽ nhìn bạn kiểu:

"Quí bạn là ai dzậy???" 


Nếu dùng InfinityFree, bạn nên tham khảo thông tin tương tự bên dưới:




7 nguyên nhân phổ biến 


(Chỉ với InfinityFree version, nếu bạn hosting trên các web hosting khác thì tùy cơ ứng biến nghe bạn...! Đừng quá tin vào DatVietLapTrinh....!)


1. Dùng "localhost" (lỗi kinh điển nhất)


Bạn viết:

mysqli_connect("localhost", ...)


Nhưng trên InfinityFree:

Database nằm ở máy chủ khác


Fix:

vào control panel. Tương tự hình trên

copy đúng DB Host


Đây là lỗi:

"nghĩ mình đang đá ở sân nhà… nhưng thực ra đang đá sân khách" 


2. Sai username (rất dễ nhầm)


Username trên InfinityFree không phải:

root


Nó kiểu:

abc_12345678


Sai 1 ký tự → không connect


3. Sai database name (khả năng dễ dính cao)


Bạn tạo database tên:

mydb


Nhưng thật ra hệ thống đặt là:

abc_12345678_mydb


Fix:

copy chính xác từ control panel


4. Sai password (hoặc quên password)


Bạn nghĩ password là:

123456


Nhưng thực tế:

  • bạn đã đặt password khác
  • hoặc copy thiếu


Fix:

  • reset password
  • copy lại


5. Chưa tạo database


Bạn connect:

database = "abc_xxx_test"


Nhưng chưa tạo 


Fix:

vào MySQL Databases

tạo database trước



6. Sai file config (copy code từ YouTube)


Bạn copy:

$conn = mysqli_connect("localhost", "root", "", "test");


Và quên sửa lại


Đây là lỗi:

"nhắm mắt copy paste "bất chấp", không suy nghĩ" 


7. Upload đúng file… nhưng sửa nhầm file

Case rất "ảo":

  • bạn sửa config.php
  • nhưng upload file khác rất "ngon lành"


Kết quả:

  • bạn fix đúng
  • nhưng web vẫn lỗi. Thế mới đau!


Debug kiểu:

"mình đã sửa mà sao không được???" 


Code mẫu đúng (ví dụ dùng cho InfinityFree)

Bạn nên viết kiểu này:

<?php



$conn = mysqli_connect(



    "sqlXXX.infinityfree.com",

    "abc_xxxxx",

    "your_password",

    "abc_xxxxx_dbname"



);



if (!$conn) {



    die("Connection failed: " . mysqli_connect_error());



}



echo "Kết nối thành công";



?>



Test nhanh, gọn, nhẹ


Tạo file:

test_db.php


Upload lên host

Mở trình duyệt:

yourdomain.infinityfreeapp.com/test_db.php


Nếu thấy:

Kết nối thành công  --> OK


Nếu không:

Vui lòng quay lại checklist



Checklist "chuẩn không cần chỉnh"


MySQL không connect trên host nói chung?

  • Host có phải localhost không? 
  • Username đúng chưa?
  • Database name đúng chưa?
  • Password đúng chưa?
  • Đã tạo database chưa?
  • File config đã upload đúng chưa?



Sự thật...biết rồi, khổ lắm, nói mãi!


Khi học và "vọc" local tức là với máy tính nhà bạn:

  • localhost
  • root


Khi lên upload hosting:

Chắc chắn tất cả thay đổi


Và bạn:

"Ủa sao code giống mà không chạy???"


Vì:

môi trường khác = luật chơi khác



Tổng kết


MySQL không connect trên hosting miễn phí, ví dụ InfinityFree không phải lỗi "khó"


Nó chỉ là:

  • sai host
  • sai config
  • sai… một chút xíu 


Nhớ:

  • Không dùng localhost
  • Copy đúng thông tin
  • Test từng bước



FAQ nhanh


Có dùng localhost được không?

Không (nếu trên InfinityFree)


Vì sao local chạy được mà online không chạy?

Vì config khác


Có nên học bằng hosting free không?

Có. Rất tốt cho newbie 



Bạn có thể cũng đang gặp:

PHP báo Undefined index

Không kết nối được database

Không nhận dữ liệu từ form