無法連接到 mariaDB,不知道主機名稱?

我正在嘗試使用以下方式連接到我的資料庫:

<?php
$servername = "localhost";
$username = "root";
$password = "{hidden}";

try {
  $conn = new PDO("mysql:host=$servername;dbname=testdb", $username, $password);
  // 設定 PDO 錯誤模式為異常
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

但我遇到連線失敗的錯誤:

Connection failed: SQLSTATE[HY000] [2002] No such file or directory

我做錯了什麼?

Mariadb 是如何安裝的,執行主機安裝在哪裡?如果是透過虛擬機(VM)或容器(container)安裝,那很可能不是在 localhost。(當然也不會是沒有埠口的)

你有試過用 127.0.0.1 代替 “localhost” 嗎?

你的 PHP 檔案是在 NAS 上還是不同的伺服器上?

你有安裝 phpMyAdmin 嗎?這樣可以方便檢查使用者權限。