2015-11-25 126 views
0

我有一个运行在VPS上的mysql数据库。我可以SSH入主机,并连接到MySQL没有问题。我无法从桌面远程连接到MySQL。我已执行以下:无法远程连接到mysql

  • 防火墙

  • 将我的本地IP到由MySQL接受远程IP地址上打开端口3306。这是通过的cPanel

  • 完成执行

    GRANT ALL ON dbname.* TO [email protected]'x.x.x.x' IDENTIFIED BY 'PASSWORD' 
    

告诉MySQL来让我从指定的地址连接。

我执行从我的桌面上的以下命令行:

mysql -h x.x.x.x -u username -p 

我得到这表明我过去的防火墙和MySQL是响应密码提示。当我提供密码,就拒绝访问:

ERROR 1045(28000):拒绝访问用户username'@'x.x.x.x'(使用密码:YES)

我错过了什么?

+0

'我得到一个密码提示,表明我已经过防火墙,并且mysql正在响应。“我认为这是你错了的地方。我已经看到足够多的时间了,'mysql'命令行客户端会尝试连接到一个**非运行的''localhost'服务器,并且仍然会提示用户输入凭据... –

+0

尝试在命令行上指定数据库作为最后一个论点。 –

+0

现货。我尝试了一个无效的端口号,仍然有密码提示。所以这是我的桌面上的mysql在转发到远程主机之前提示我。有没有办法找出我是否越过防火墙?就像一个ping或一个mysqld的痒痒? – Peter

回答

0

答案在评论中给出,所以我会在这里重复它以正确地关闭该线程。 alvits怀疑远程用户还没有被创建。它已经创建,但他的评论促使我清理用户表。

我删除了所有远程用户,包括由CPanel创建或从其他主机迁移的负载。然后我开始从零开始做create usergrant all,它现在可以工作。

谢谢!