【问题标题】:Can't connect to mysql database without 'access denied'如果没有“访问被拒绝”,则无法连接到 mysql 数据库
【发布时间】:2017-05-03 20:56:36
【问题描述】:

这是我的代码:

<html>
<body> 
<?php

$servername = "localhost";
$username = "guest";
$password = "#Guest123";
$database = "My_first_Database";

$conn = new mysqli($servername, $username, $password, $database);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?> 
</body>
</html>

上传到我的网络服务器后,页面显示:

连接失败:用户 'guest'@'localhost' 的访问被拒绝(使用 密码:是)

我知道这样的问题通常是由于 'guest' 没有正确的权限,但 'guest' 拥有此数据库的所有权限。所以我不明白为什么我不能用这个用户访问数据库。

很抱歉,如果以前在这里问过这个问题,但是每个人都说要授予用户权限(我已经这样做了)。

已解决:mysql 在使用 GRANT ALL 时没有正确授予所有权限。必须手动授予权限

【问题讨论】:

  • 您使用的密码是否正确? PS:在公共论坛上发布您的密码是一种非常糟糕的做法。
  • 好吧,我真的希望“#Guest123”不是他的密码。但是,此错误通常是因为密码不正确或其他一些身份验证问题。 ;)
  • 那是相当虚伪的......如果相同的凭据在端口 3306 上工作怎么办?在公开发布凭据时,通常最好对凭据进行编辑。
  • 让您的数据库管理员确保您已获得“用户名”@“本地主机”的凭据。 FlamingGenius,我明白你的意思,但那是“默默无闻的安全”,因此不应该鼓励,尽管如此。

标签: php mysql


【解决方案1】:

我已使用GRANT ALL ON My_first_Database.* TO 'guest'@'localhost' IDENTIFIED BY '#Guest123' 授予所有权限并检查了密码和用户名是否正确

-- 袋鼠酋长

已解决: mysql 在使用GRANT ALL 时未正确授予所有权限。我必须手动授予权限

-- 袋鼠酋长

【讨论】:

    【解决方案2】:

    就您的代码而言,一切都是正确的,这绝对是一个服务器问题,请确保您输入正确的值和权限

    以下仅暗示您是否设置了家庭服务器 检查并确保您对目录具有readwrite 访问权限,如果您的数据库设置所在的文件夹没有读写访问权限,则每次验证都会失败这是您可能会收到一条错误消息的常见原因“拒绝访问”

    仔细检查您的用户名、密码、数据库中常见的拼写错误

    【讨论】:

    • 如果他正在设置自己的家庭服务器,那么他需要允许他的脚本读写权限,否则可能会失败
    • 编辑澄清:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 2017-11-03
    • 2013-08-13
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多