Kết nối tới máy chủ MySQL từ ứng dụng trong HiTechCloud
HiTechCloud chạy mỗi dịch vụ của người dùng trong một container riêng và dùng mạng cục bộ để cách ly chúng. Điều này nghĩa là ứng dụng không kết nối tới cơ sở dữ liệu qua localhost hay 127.0.0.1, mà qua hostname của container.
Thông tin thêm về mạng: Cách ly mạng trong HiTechCloud
Để kết nối từ ứng dụng PHP, Node.js hoặc Python tới cơ sở dữ liệu MySQL/MariaDB, bạn phải dùng:
- Hostname:
mysql(với MySQL) hoặcmariadb(với MariaDB) - Cổng:
3306(mặc định) - Tên người dùng/mật khẩu: đã tạo cho cơ sở dữ liệu từ giao diện HiTechCloud
⚠️ Quan trọng: Không bao giờ dùng localhost hay 127.0.0.1 làm host cơ sở dữ liệu. Chúng sẽ không hoạt động vì các container được cách ly.
Ví dụ: WordPress
Khi thiết lập WordPress trong HiTechCloud, dùng cấu hình cơ sở dữ liệu sau:
DB_HOST=mysql
Ở đây, DB_HOST được đặt là mysql, để WordPress kết nối được tới container MySQL. Nếu bạn dùng MariaDB, hãy thay mysql bằng mariadb.
Ví dụ: ứng dụng PHP tuỳ chỉnh
Trong một ứng dụng PHP tuỳ chỉnh, bạn có thể kết nối như sau:
<?php
$host = "mysql"; // or "mariadb"
$db = "my_database";
$user = "my_user";
$pass = "my_password";
$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";
try {
$pdo = new PDO($dsn, $user, $pass);
echo "Connected successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
Ví dụ: ứng dụng Node.js
Với Node.js dùng mysql2 hoặc sequelize:
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'mysql', // or "mariadb"
user: 'my_user',
password: 'my_password',
database: 'my_database'
});
connection.connect(err => {
if (err) {
console.error('Connection error:', err);
return;
}
console.log('Connected successfully!');
});
Ví dụ: ứng dụng Python
Dùng mysql-connector-python:
import mysql.connector
conn = mysql.connector.connect(
host="mysql", # or "mariadb"
user="my_user",
password="my_password",
database="my_database"
)
cursor = conn.cursor()
cursor.execute("SELECT DATABASE();")
print("Connected to:", cursor.fetchone())
✅ Tóm tắt:
- Dùng
mysqlhoặcmariadblàm hostname. - Không bao giờ dùng
localhosthay127.0.0.1. - Áp dụng cho PHP, WordPress, Node.js, Python và mọi ứng dụng khác trong mạng
db.