2017-07-25 891 views
0

這是我第一次上傳網頁到服務器,我的主題十分缺乏經驗。 我下載的XAMPP在生產環境,並通過phpmyadmin我配置了一個用戶名,密碼和主機=「%」 工作但是當我上傳我的文件與Filezila,我拋出這個:SQLSTATE [HY000] [1045]拒絕「用戶」 @「localhost」的訪問(使用密碼:YES)

SQLSTATE [HY000] [1045]訪問被拒絕的「用戶」 @「localhost」的(使用 密碼:YES)

我試圖通過mysql外殼和工作臺連接到我的服務器上創建了一個用戶「用戶」的所有權限訪問我的數據庫,但在這兩種情況下,我把以下內容:

主機xxxx.xx.xx不允許連接到該服務器MariaDB的。

我不明白的是爲什麼MariaDB的服務器?我沒有下載或什麼。

我真的不知道我怎麼可以授予權限到新用戶的主機裏面,以便它可以訪問我的數據庫。我的連接代碼如下:

try { 
    $dsn = 'mysql:host=%;dbname=db_name;charset=utf8'; 
    $db = new PDO($dsn, 'user', 'contraseña'); 
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
    exit; 
} 
+0

是你的mysql在同一臺服務器上? – arcee123

+0

嘗試並將'localhost'更改爲'127.0.0.1' – Option

回答

0

MariaDB的是MySQL的一個岔路口,許多託管服務提供商和Linux發行版MariaDB的默認。使用MariaDB與MySQL非常相似。請注意,在連接字符串中,主機通常是localhost而不是%

1

1)對於第一個錯誤,它是說,你的mysql憑據無效。在您的php代碼中更正您的數據庫配置。安排用戶名,密碼等...您可以從您的託管服務提供商處獲得此信息。嘗試將'%'更改爲'localhost'。

2)對於第二 Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION; 

FLUSH PRIVILEGES; 
+0

感謝您的回答!我在控制檯(第二個問題已解決,謝謝!)和我的php代碼中更改了phpmyadmin的用戶名和密碼(由我的託管提供商提供的),並且我已將主機作爲本地主機,但是錯誤仍然存​​在。 –

+0

@Michael,編輯你的答案,以防止堵塞你的答案的評論回覆。 – Option

+0

ok會編輯它! –

0

對於第一個問題:如果您的服務器名稱爲localhost。請驗證您的託管服務提供商的所有信息(服務器名稱,用戶名,數據庫密碼)。試試這個代碼:

<?php 

$servername = "localhost"; 
$username = "yourusername"; 
$password = "yourpassword"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=yourdatabase", 
    $username, $password); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
catch(PDOException $e) 
    { 
     echo "Connection failed: " . $e->getMessage(); 
    } 
?> 
相關問題