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":
- Tạo website 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 chò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ó xị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 5 giây… 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"
→ MySQL sẽ nhìn bạn kiểu:
"Bạn là ai???" 🤨
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
(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...!)
❌ 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 (cực dễ dính)
👉 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:
"copy paste 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
👉 Kết quả:
bạn fix đúng
nhưng web vẫn lỗi
👉 Debug kiểu:
"mình đã sửa mà sao không được???" 🤡
Code mẫu đúng (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
👉 Tạo file:
test_db.php
👉 Upload lên
👉 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:
→ quay lại checklist
Checklist "chuẩn không cần chỉnh"
👉 MySQL không connect trên InfinityFree?
- 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?
👉 90% lỗi nằm ở 1–3 😏
Sự thật...biết rồi, khổ lắm, nói mãi!
👉 Khi học local:
- localhost
- root
👉 Khi lên hosting:
→ 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 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 (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:
