这让我发疯了好几天。我在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
相同的消息。我很确定自己所有的拼写/名称都正确,并且也在其他计算机上尝试过。那么有什么想法可能是什么问题吗?
答案 0 :(得分:1)
PDO异常:SQLSTATE [HY000] [1045]用户'的访问被拒绝 graphgr1_mhazaa'@'localhost'(使用密码:是)
要从cPanel帐户中的脚本连接到cPanel帐户中的数据库,您只需
要从本地计算机本地连接到cPanel托管数据库,您需要:
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