【发布时间】: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等的。