开发者社区> 问答> 正文

作为firewall使用在mysql上的时候lock tables .. write过不了校验

LOCK TABLES table_name write 在mysql防火墙校验的时候会过不了校验 debug发现是由于在校验lock tables table_name write之后跳转到 SQLStatementParser.parseStatementList循环的时候lexer.token的值为write 结果就会到 printError(lexer.token);

原提问者GitHub用户sunsun314

展开
收起
山海行 2023-07-05 20:41:47 43 0
4 条回答
写回答
取消 提交回答
  • 您可以检查以下几个方面来解决问题:

    1. 权限:确保您使用的用户具有执行LOCK TABLES语句的权限。您可以通过GRANT语句授予相应的权限给用户。

    2. 表权限:确保被锁定的表在用户的权限范围内。使用SHOW GRANTS语句检查用户是否有足够的权限访问和锁定目标表。

    2023-07-30 14:05:44
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    如果你使用MySQL作为防火墙,并且在使用LOCK TABLES ... WRITE语句时出现校验失败的问题,可能是由于MySQL对LOCK TABLES语句的使用有一些限制导致的。

    具体来说,MySQL在进行权限校验时会检查用户是否有使用LOCK TABLES语句的权限,并且还会检查被锁定的表是否在用户的权限范围内。如果用户没有相应的权限或表不在其权限范围内,则会校验失败。

    2023-07-30 13:36:31
    赞同 展开评论 打赏
  • 能是由于MySQL防火墙的校验规则限制了某些特定的SQL语句,例如lock tables。在这种情况下,可以尝试将lock tables语句写在一个try-catch语句中,然后在catch语句中捕获SQLStatementParser.parseStatementList方法的异常,并将其忽略掉。这样就可以绕过防火墙的校验,让lock tables语句正常执行了。

    2023-07-11 10:14:59
    赞同 展开评论 打赏
  • 应该是支持的

    原回答者GitHub用户wenshao

    2023-07-06 11:45:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像