【问题标题】:Access denied for user 'web'@'localhost' remote mysql用户 'web'@'localhost' 远程 mysql 的访问被拒绝
【发布时间】:2019-07-16 00:38:28
【问题描述】:

我在一个 VPS 上托管了我的网站和数据库,但现在我正在尝试将网站迁移到共享主机,因此 VPS 上将仅保留数据库。我向所有 mysql 用户授予了完全权限,并且我的 config.php 被配置为连接到 VPS 的 IP 地址,但由于某种原因它给了我这个错误:

拒绝用户“root”@“localhost”访问(使用密码:YES)

这里奇怪的是,在 config.php 中,["username"] 不是 'root' 而 ["hostname"] 不是 'localhost'。

这里是config.php

$db["hostname"] = "VPS's IP address";
$db["username"] = "treewee";
$db["password"] = "my MYSQL password";
$db["database"] = "web";
$db["port"] = 3306;

bind-address 也被禁用 # - # bind-address="localhost"。是的,正如我所说,所有 mysql 用户都被授予完全权限(包括 root 和 treewee)。

换句话说,我不会使用共享主机提供给我的 MySQL。但是我在 cPanel > Remote MySQL 中添加了 VPS 的 IP,但什么也没有……仍然是同样的错误……有什么想法吗?

对不起我的英语

【问题讨论】:

  • 这是一个身份验证问题。您需要确保您的用户启用了远程访问。 localhost% 或某些特定 IP 有不同的权限。
  • 你确定$db变量实际上是用来建立连接的吗?可能会遗漏一些东西,并且连接会落入默认的“root”和“locahlost”。
  • @tadman 是的,它已启用。
  • @fifonik 是的,我买web系统的时候,他们告诉我config.php是用来连接mysql等的。

标签: php mysql web hosting


【解决方案1】:

$db["username"] = "treewee" - 这是我使用的用户;

“that's”中有一个不需要的 's,不确定这是故意的还是在实际代码中。

实际上试图访问数据库的是什么?也许您使用了错误的凭据,使用 root/localhost 而不是“treewee”

【讨论】:

  • 在公共网站上使用“root”?!嗯。 'treewee' 是我的 mysql 根用户。和本地主机?当我的网站在共享主机中并且我的数据库在 VPS 中时,如何使用 localhost?
猜你喜欢
  • 2015-01-31
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
  • 2020-11-13
  • 2020-02-04
  • 2016-07-11
相关资源
最近更新 更多