Phpmyadmin 为什么cPanel即使拥有所有允许的权限也不授予我的用户访问权限?

Phpmyadmin 为什么cPanel即使拥有所有允许的权限也不授予我的用户访问权限?,phpmyadmin,cpanel,Phpmyadmin,Cpanel,这几天我都快发疯了。我在cPanel中创建了一个数据库,其中有一个用户,并启用了所有特权复选框 现在,每当我尝试访问我的数据库时,它都不起作用,错误日志显示: PDO异常:用户' graphgr1_mhazaa'@'localhost'(使用密码:YES) 我尝试从命令行本地访问数据库 mysql -u myUsername -pMyPassword -h remoteHostIP -D databaseName 结果表明: 错误1045(28000):拒绝访问用户“用户名”@'c-174

这几天我都快发疯了。我在cPanel中创建了一个数据库,其中有一个用户,并启用了所有特权复选框

现在,每当我尝试访问我的数据库时,它都不起作用,错误日志显示:

PDO异常:用户'
graphgr1_mhazaa'@'localhost'(使用密码:YES)

我尝试从命令行本地访问数据库

  mysql -u myUsername -pMyPassword -h remoteHostIP -D databaseName
结果表明:

错误1045(28000):拒绝访问用户“用户名”@'c-174-53-152-193.hsd1.mn.comcast.net'(使用密码:是)

我甚至尝试以root用户身份访问数据库

 mysql.exe -u root -h remoteHostIp -D databaseName
同样的信息。我很确定我把所有的拼写/名字都正确了,并且在不同的电脑上也试过了。你知道问题出在哪里吗

PDO异常:拒绝用户的SQLSTATE[HY000][1045]访问 graphgr1_mhazaa'@'localhost'(使用密码:YES)

要从cPanel帐户中的脚本连接到cPanel帐户中的数据库,您需要

  • 创建数据库
  • 为它创建用户
  • 向用户提供必要的授权
  • 要在本地连接,从您自己的计算机到cPanel托管的数据库,您需要:

  • 有一个数据库和一个用户分配给它
  • 在cPanel的远程MySQL工具中允许本地计算机的IP
  • cPanel托管的MySQL的工作方式是,它要求所有MySQL连接都来自授权的IP地址

    允许您将脚本从cPanel帐户连接到cPanel托管的数据库的是,服务器的IP地址已经存在于远程MySQL工具中

    使用SSH,您只需使用

    mysql -u YOUR_USER -p YOUR_DATABASE ## MySQL added User connection, sees only databases it has access to
    mysql -u cPanel_USER -p             ## cPanel User connection, sees all databases added in your cPanel account
    

    我对此有一点不同的看法

    通过在cpanel中生成一个SSH密钥并将其(id_rsa文件)复制到我的Mac上,我在Mac笔记本电脑上使用Sequel Pro访问了我的MySql数据库

    除非您将此文件的权限更改为400,否则它将无法工作

    chmod 400 filename
    
    然而,一旦Sequel Pro开始工作,我就尝试使用pymsql通过python读取我的数据库

    这导致了无穷无尽的问题,并引发了讨论中错误的几种变体

    在终端窗口中大量摆弄mysql之后,我放弃了,转而求助于一位本地UNIX专家,他提出了以下解决方案

    在终端类型中

    ssh -i id_rsa -L 3307:yourcpanel.hosted.xxx:3306 yourcpanelusername@your cpanel.hosted.xxx -N
    
    有关更多信息,请搜索“仅ssh端口转发无外壳”

    据我所知,它在Mac上打开了一个本地端口号3307,并使用id_rsa密钥和disallows命令连接到端口3306上的cpanel。一旦这个系统启动并运行

    在python代码中,使用一些变量

    db = pymysql.connect(host=DB_HOST, user=DB_USER, passwd=DB_PWD, db=DB_NAME,  port=DB_PORT)  
    
    在哪里
    DB_HOST='localhost',DB_USER=您的cpanel数据库用户名,DB_PWD=您的数据库密码,DB_NAME=您的cpanel数据库名称,DB_PORT=3307

    谢谢!我已经设置了数据库、用户和权限,但我没有为我的IP地址添加授权,所以这可能就是问题所在。我有点困惑我该怎么做。我是否要转到cPanel->remotemysql->addaccesshost并将我的ip地址放在那里?没错。因为MySQL中的通配符是%not*,所以可以使用它来匹配一系列IP。如果您的IP是1.1.1.1,您只需将其添加到远程MySQL(scr:)中即可。您还可以添加1.1.1的任何IP,如1.1.1.%。这将允许从您的IP连接到服务器的MySQL数据库。您仍然需要具有访问数据库权限的用户