Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不允许主机为客户端服务器应用程序连接到此MySQL服务器_Mysql - Fatal编程技术网

不允许主机为客户端服务器应用程序连接到此MySQL服务器

不允许主机为客户端服务器应用程序连接到此MySQL服务器,mysql,Mysql,我刚刚将表从一个web主机导出到另一个(AWS)。 认为一切都会顺利进行(是的,对),那么,所有可能出错的事情都错了 我在尝试查询我的数据库时遇到此错误(我以前没有遇到此错误): SQLSTATE[HY000][1130]主机“”不允许连接到此MySQL服务器 这与本文中的错误相同: 这篇文章中的解决方案似乎是围绕拥有一个管理用户展开的。我正在开发一个聊天应用程序,这样每个用户都需要访问服务器(所以我确信给他们所有的管理权限是个坏主意)。 Pascal在该链接中给出的答案是,如果您将mysql

我刚刚将表从一个web主机导出到另一个(AWS)。 认为一切都会顺利进行(是的,对),那么,所有可能出错的事情都错了

我在尝试查询我的数据库时遇到此错误(我以前没有遇到此错误):

SQLSTATE[HY000][1130]主机“”不允许连接到此MySQL服务器

这与本文中的错误相同:

这篇文章中的解决方案似乎是围绕拥有一个管理用户展开的。我正在开发一个聊天应用程序,这样每个用户都需要访问服务器(所以我确信给他们所有的管理权限是个坏主意)。 Pascal在该链接中给出的答案是,
如果您将mysql用于客户机/服务器应用程序,请选择子网地址。
但我真的不明白他的意思。由于解决方案的数量,我不确定根据我的案例我应该遵循哪一个


如何解决此问题?

MySQL有安全表,用于确定允许谁连接以及来自哪个主机IP地址

下面是一篇关于如何做到这一点的好文章:

如果您有很多连接,请考虑设置一个服务器来接受连接并与SQL Server进行对话。最简单的方法是设置REST接口并使用web服务器。Web服务器通常也是高度优化的,并且相对没有bug


在AWS上的类似架构中,我很高兴地使用nginx。

确保您在my.cnf中有
bind address=YOUR-SERVER-IP
,并确保您有一个用户
hd1@172.31.39.86
hd1@%
,后者是MySQL服务器上的MySQL通配符。更多信息。您可能还需要在AWS控制台的“安全组”部分授予对端口3306(默认MySQL端口)的访问权。

让mysqld在0.0.0.0:3306上侦听。我遵循了您提到的链接,唯一没有做的就是添加该用户。我有一个具有以下属性的用户
%
用户:任意、主机%、密码:--、全局权限:用法、授权:否
。我是否应该将授权更改为
?我很好奇为什么你要我将用户hd1@172.31.39.86当这是你的用户名时。。。?lolHey Charlie,我可以使用:
$mysql-u webadmin-h myElasticIpAddress
连接到我的mysql服务器,但这让我害怕极了,因为这意味着任何拥有我ip的人都可以轻松地开始操作数据。我现在没有什么重要的事情,但这显然不理想。由于用户本身不必发出命令(我只需将他们的输入发送到我的php脚本,服务器上的脚本处理查询),我是否应该删除任何查询特权?这一步我很困惑。我接受了这个答案,因为下面的答案告诉我我必须添加一个用户,而我没有。虽然两个答案都指向同一个链接(这非常有帮助),但这个答案是最先发布的。哦,最后!我的应用程序可以连接到服务器,一切正常!!!:)
// IN YOUR MYSQL WORKBENCH You Have to Execute below query

CREATE USER 'root'@'1.2.1.5(Your Application Server IP)' IDENTIFIED BY 'pass';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.200.1.54' WITH GRANT OPTION;

AFTER CREATING YOU CAN VIEW USING BELOW QUERY

SELECT * FROM mysql.user WHERE User = 'root';