SQLSTATE [HY000] [1045]拒绝“用户” @“localhost”的访问(使用密码:YES)

问题描述:

这是我第一次上传网页到服务器,我的主题十分缺乏经验。 我下载的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

MariaDB的是MySQL的一个岔路口,许多托管服务提供商和Linux发行版MariaDB的默认。使用MariaDB与MySQL非常相似。请注意,在连接字符串中,主机通常是localhost而不是%

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会编辑它! –

对于第一个问题:如果您的服务器名称为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(); 
    } 
?>