不,Charter 对此无能为力,因为这是直接来自 MySQL 服务器的错误,因为您的 IP 地址不在配置为访问的主机中。
Error: 1130 SQLSTATE: HY000 (ER_HOST_NOT_PRIVILEGED)
Message: Host '%s' is not allowed to connect to this MySQL server
正确的解决方案包括理解MySQL 访问权限系统将用户名 + 主机 IP 地址或连接发起的名称视为“帐户” - 而不是用户名本身。
'foo'@'localhost' # username foo connecting from the server machine
'foo'@'192.168.1.1' # username foo from IP address 192.168.1.1
'foo'@'192.168.1.%' # username foo from IP address 192.168.1.*
'foo'@'192.168.%' # username foo from IP address 192.168.*.*
'foo'@'%' # username foo from any IP address
在 MySQL 的权限系统中,这些是 5 个不同的“用户”,可能具有 5 个不同的密码。如果不允许任何用户从您的 IP 地址或任何与您匹配的通配符地址连接,这将是您收到的消息。这将在此处和此处进一步解释。
您无法使用mysql
命令行客户端来覆盖服务器的配置,但您可以使用 SSH 隧道,以便服务器会认为您是从localhost
其他受信任的主机连接的,正如评论中所建议的那样。
解决方法是让您的朋友通过GRANT
声明在您的地址授予您特权。cPanel 可能会提供一个接口来执行此操作——我不知道,因为我直接使用 MySQL——但如果是这样,那将是 cPanel 基本上编写相同的GRANT
语句并将其发送到 MySQL 服务器以执行。