为什么即使允许所有特权,cPanel也不授予用户访问权限?

时间:2018-06-26 07:11:54

标签: phpmyadmin cpanel

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

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

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

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

  mysql -u myUsername -pMyPassword -h remoteHostIP -D databaseName

它显示:

错误1045(28000):用户'username'@'c-174-53-152-193.hsd1.mn.comcast.net'的访问被拒绝(使用密码:是) < / p>

我什至试图以root身份访问数据库

 mysql.exe -u root -h remoteHostIp -D databaseName

相同的消息。我很确定自己所有的拼写/名称都正确,并且也在其他计算机上尝试过。那么有什么想法可能是什么问题吗?

2 个答案:

答案 0 :(得分:1)

  

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

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

  1. 创建数据库
  2. 为此创建用户
  3. 向用户提供必要的授权

要从本地计算机本地连接到cPanel托管数据库,您需要:

  1. 有一个数据库和一个分配给它的用户。
  2. 在cPanel的远程MySQL工具中允许本地计算机的IP

cPanel托管MySQL的工作方式是,它要求所有MySQL连接均来自授权的IP地址。

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

使用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

答案 1 :(得分:0)

我对此略有不同。

通过在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键连接到端口3306上的cpanel并禁止了命令。一旦启动并运行...

在您的python代码中为此使用一些变体

db = pymysql.connect(host=DB_HOST, user=DB_USER, passwd=DB_PWD, db=DB_NAME,  port=DB_PORT)  

其中 DB_HOST =‘本地主机’,DB_USER =您的cpanel数据库用户名,DB_PWD =您的数据库密码,DB_NAME =您的cpanel数据库的名称,DB_PORT = 3307