开发者社区> 问答> 正文

技术运维问题 - MYSQL使用 -RDS for MySQL 报错: SELECT command denied to user 'username'@


问题现象: 使用RDS for MySQL, 程序执行查询SQL时报错,如下:

SELECT command denied to user 'username'@ 'ip' for table 'user'
解决方法:
1. 测试rds是否异常。 可以使用mysql客户端连接到RDS, 查询对应的表, 检查是否可以查询。 如果可以正常查询,说明RDS没有问题。
2. 抓包测试本机出包实际的请求
(1). 在Wireshark 界面中,选择 Capture ->  Interface ,选择对应连接RDS的内网网卡  -> Option -> 在 File 输入框中输入要保存的文件 1.cap,然后点击 start 开始抓包。 (2). 复现问题。 (3). 问题复现后,停止抓包。
3. 分析包生成的抓包文件。 在filter里面输入mysql,过滤出来mysql协议,找到报错的包,

右击follow tcp stream
[url=http://img01.taobaocdn.com/tfscom/TB1AXoQKFXXXXa8XVXXXXXXXXXX.png]
检查发送的SQL是否正确。上面案例中的SQL:
select user0_.id as id9_, user0_.address as address9_, user0_.connection as connection9_, user0_.isonline as isonline9_, user0_.name as name9_, user0_.password as password9_, user0_.permisssion as permisss7_9_, user0_.phone as phone9_, user0_.token as token9_ from hnb.user user0_ where user0_.phone='110'
原因在于库名是fnb,程序拼接出来的是 hnb.user, 数据库名拼接错误,导致报错。 修正数据库名后,问题解决。

如果问题还未能解决,请联系[url=https://selfservice.console.aliyun.com/ticket/createIndex.htm]售后技术支持

展开
收起
梨好橙 2018-09-24 22:10:02 2364 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
企业运维之云原生和Kubernetes 实战 立即下载
可视化架构运维实践 立即下载
2021云上架构与运维峰会演讲合集 立即下载

相关镜像