Java 另一个IP的Insert命令被拒绝

Java 另一个IP的Insert命令被拒绝,java,mysql,hibernate,proxy,Java,Mysql,Hibernate,Proxy,我在代理服务器后面使用Selenium WebClient和WebDriver。 数据库事务通过我的MySQL DB服务器上的Hibernate完成。 我对以下错误感到困惑: Caused by: java.sql.SQLSyntaxErrorException: INSERT command denied to user 'user'@'**another_IP**' for table 'myTable' 我完全被这个事实弄糊涂了,“另一个\u IP”是我的代理IP,但我使用代理只是为了S

我在代理服务器后面使用Selenium WebClient和WebDriver。
数据库事务通过我的MySQL DB服务器上的Hibernate完成。 我对以下错误感到困惑:

Caused by: java.sql.SQLSyntaxErrorException: INSERT command denied to user 'user'@'**another_IP**' for table 'myTable'

我完全被这个事实弄糊涂了,“另一个\u IP”是我的代理IP,但我使用代理只是为了Selenium而不是Hibernate连接
换句话说,我的VPS服务器(通过Hibernate在远程MySQL db服务器db\u服务器\u IP上发送web请求,还执行db事务)具有my\u IP,我通过IP另一个\u IP代理将web请求发送到网页,而不是db事务。现在,我的DB服务器应该只从我的\u IP接收DB事务请求,但它从另一个\u IP接收

没有足够的信息来了解为什么另一个IP**试图在MySQL数据库上执行
插入
;也许您使用hibernate的应用程序也在代理的后面

无论如何,如果您想通过允许
'user'@'**另一个\u IP**
执行
插入
来摆脱此问题,您必须获得it权限才能执行此操作

为此,您只需发出如下命令:

GRANT INSERT ON db.myTable TO 'user'@'%';
当然,将
db
myTable
user
值替换为相应的值。通配符
%
将授予位于任何ip地址的
用户所需的
插入权限;因此,无论您的代理切换到哪个ip地址,hibernate都能够执行这些插入操作

请注意,如果尝试从同一个代理后面运行此命令,可能会遇到类似的特权相关问题,因此请确保从可以访问MySQL数据库的用户和主机上运行此命令


希望这有帮助。

在这种情况下,Hibernate与此无关

我认为你没有给该ip上的MySQL用户帐户足够的权限

执行此SQL:
将db.*上的SELECT、INSERT、DELETE授予“user”@“anotherip”

然后尝试执行INSERT查询

更新:

如果问题仍然存在,请使用该ip创建一个MySQL帐户:

执行此SQL:
创建用户“USER”@“anotherip”,由“password”标识


然后使用insert查询执行上述命令

你如何激活你的代理?@OrtomalaLokni你激活我的代理是什么意思?!我在selenium webdriver初始化中使用了一个免费的代理服务器,例如:10.2.3.4:8118。请确保我知道在MySQL DB中授予权限!!问题是“另一个IP”正在周期性地变化。我知道“另一个IP”的来源,例如TOR网络。我正在使用它,但在我的web请求中(例如,Java代码中的Selenium WebClient和WebDriver)没有Hibernate。如何在代理后使用Hibernate?确定,确定,确定!!!我知道如何授予user@ip在MySQL中。了解我的Hibernate请求为何通过代理传递。注意,我只在发送网页请求而不是hibernate请求时才使用代理。为什么我的db服务器从我的代理IP接收请求??它应该只接收我的vps IP而不是我的代理IP。。。。!!!!!你知道单数形式的标点符号是有效的吗?多重性只是让你看起来杂乱无章,语无伦次?我想这是一个有效的警告。您是否想过询问您的VPS提供商是如何设置的?因为很明显我们不能为你改变。除了一个能让你工作的快速答案之外,你还期望得到什么答案?@danblack我正在寻找一个解释为什么安装在VPS上的MySQL会从另一个IP而不是我的IP接收请求的答案!询问您的VPS提供商。代理mysql有很多方法和理由。标点符号的最后一点,一个句号就可以了。用感叹号你不会得到更好的答案,很可能相反的答案会出现。并询问您的VPS提供商,他们如何代理mysql以及您应该如何使用它。