Chuyển tới nội dung chính
Version: 4.1

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ặc mariadb (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 mysql hoặc mariadb làm hostname.
  • Không bao giờ dùng localhost hay 127.0.0.1.
  • Áp dụng cho PHP, WordPress, Node.js, Python và mọi ứng dụng khác trong mạng db.