wKiom1f6AXGw6_7kAABl1hUmnZI262.png

情况如图,使用dvlopenhls可以登陆到这个host,并且可以查看里面的tables,但是使用tables其中的op_flow就会报错,查看了很多地方,有人说要改密码,有人说要grant给权限。五花八门,乱七八糟。


其实这个问题很蛋疼,因为op_flow下面已经不是一个tables所以不能继续use。说白了这是一个语句错误,但是mysql竟然用access deny来反馈,的确是一个bug。

wKioL1f6AgjypMb3AABYtEC4WC4834.png

这样就好了。


还有第二种情况,今天开发的PL反应,在测试手机APP的时候,有这样的一个写入报错:

UPDATE command denied to user 'dvlopenlogs'@'10.162.65.78 (file://dvlopenlogs'@'10.162.65.78/)' for table 'op_apilog_20161013'


但是insert的语句却没有报错,然后希望我添加一下update的权限。


但是阿里云的数据库权限是要给全部都给的,要不给一点都不给,不会片段性的给予权限。于是可见不是权限的问题。


后来我想起来一个案例,曾经有一次,有人反应使用如下的语句,也报update 权限不足:

UPDATE `dblayer`.`test` SET `title` = 'hello a' WHERE `test`.`id` =1;

而这个语句在phpmyadmin下是ok的,但是在终端里使用就报错,同时grant语句也检查了,其他的权限也都好使。于是这位哥们尝试全局先选定table,然后把语句改成这样:

UPDATE `test` SET `title` = 'hello a' WHERE `test`.`id` =1;

就OK了。


我就找开发PL要update语句,PL估计猛醒了过来,没有把语句给我,然后这个问题就销声匿迹了,我微微一笑,深藏攻与名...