2015-05-01 95 views
1

我已经使用openshift创建了一个免费的应用程序,并创建了MySQL和phpmyadmin盒式磁带,并在我的phpmyadmin中为所有用户提供了访问所有用户的权限,现在问题是当我尝试从我的本地MySQL工作台我得到连接,但我没有看到我的表我已经在远程服务器上使用phpMyAdmin创建,我不能做任何行动,如创建模式或表从哪里获得MySql远程服务器连接访问被拒绝

错误1044:访问被拒绝用户'@'localhost'

请记住,我允许任何用户拥有所有权限,但除了仅限于数据库连接之外,我仍然拒绝访问任何操作。

+0

你确定你为用户'user'增加了权限而不是'root'吗? – John

回答

0

确保您授予用户完全权限的用户与MySQL Workbench所连接的用户相同 - 例如主机%localhost之间存在差异。在MySQL Workbench中,发出“状态”命令,并根据您配置的内容比较用户名和主机。

你显然是通过'localhost'连接的,所以你必须给主机localhost的匿名用户提供完全的权限(或者把你的连接类型改为tcp,以便你的连接通过127.0.0.1而不是localhost)。

编辑进一步说明: MySQL权限结构不同地处理不同类型的连接;通过TCP连接连接的客户端总是看起来来自IP地址,即使它来自“本地主机”(即在同一台计算机上),在这种情况下,传入连接的IP地址可能为127.0。 0.1。套接字类型连接在MySQL中注册为来自主机“本地主机”(字面上,在这种情况下)。这就是我们验证MySQL Workbench连接的主机的原因。

不同的连接类型与MYSQL不同,即使它们来自同一个“本地机器”。此外,通配符主机不包含'本地主机'套接字连接,这些是'localhost'主机名在权限字段中的单独条目;正如我上面解释的那样,通配符不适用。这就是我们为什么要检查你对MySQL Workbench连接的权限设置的原因;这是这些困难最常见的原因。

+0

我认为很明显,openshift免费帐户不允许远程sql访问 – user2469133

+0

如我所说的允许任何用户没有任何凭据的权限,除非这与openshift一起工作吗? – user2469133

+0

对不起,我一定错过了你说的是免费帐户的地方,但是这实际上并不重要,因为即使主机阻塞外部连接,MySQL权限结构也保持不变。如果您可以发布屏幕截图或授予的权限的SQL导出,并检查MySQL Workbench中的“STATUS”命令,这将非常有帮助。有关更详细的解释,请参阅上面编辑中的信息。我无法向你保证这是正确的解决方案,因为我还没有足够的信息,但目前看起来很可能是:) –