600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误

mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误

时间:2020-07-04 02:56:24

相关推荐

mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误

如果加工规则中涉及RDS资源的加载,则有可能会产生资源的加载或刷新错误。本文档主要介绍从RDS-Mysql获取数据出错的原因以及排查处理方法。

在成功读取源Logstore数据后,加工引擎开始对源Logstore的日志事件进行加工。如果加工规则中涉及OSS、RDS、Logstore等外联资源的加载,则也有可能会产生资源的加载或刷新错误。

控制台单独使用资源函数

加工规则

res_rds_mysql(address="xx",username="xx",password="xx",database="xx")

错误日志

aliyun.log.logexception.LogException: {"errorCode": "InvalidEtlConfig", "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected: ", "requestId": ""}

排查方法

该错误信息为语法配置错误,这种错常见于用户在控制台单独使用res_rds_mysql、res_log_logstore_pull或res_oss_file语法。

解决方案

资源函数语法不可以单独在控制台使用,请结合e_table_map或者e_search_table_map等函数进行使用。

参数填写错误

加工规则

e_table_map(res_rds_mysql(address="xx",username="xx",password="xx",database="xx"),field="processid",output_fields=["name","xixi"])

错误日志

"errorMessage\": \"When sql is not set, table must be set\\nDetail: None\"

排查方法

一般这种情况就是table和sql两个参数都没有填写。

解决方案

当table参数没有设置的时候,必须传入指定的sql语句,否则找不到表无法进行数据获取。table和sql两个参数必须传递一个。

输出字段错误

加工规则

e_table_map(res_rds_mysql(address="x",username="xx",password="xx",database="xx",table="test"),field="processid",output_fields=["name","xixi"])

错误日志

"errorMessage\": \"trans_comp_lookup: output field xixi doesn't exist in lookup table\\nDetail: None\

排查方法

出现这种错误是因为output_fields输出的字段并不存在于mysql数据表中。

解决方案

请验证mysql数据库中数据都包含哪些字段,将正确的字段填入output_fields中。

参数类型配置错误

加工规则

e_table_map(res_rds_mysql(address="xxx",username=1234,password="xx",database="xx",table="xx"),field="processid",output_fields=["name","xixi"])

错误日志

"errorMessage\": \"username not a string type\\nInvalid Settings

排查方法

出现这种错误是因为username不是String类型。

解决方案

所以请配置的时候根据参数文档配置正确参数的类型,否则会抛出错误。

网络或者权限错误

加工规则

e_table_map(res_rds_mysql(address="xxx",username=xxx,password="xx",database="test999",table="xx"),field="processid",output_fields=["name","xixi"])

错误日志1

message: Database connection failed, cause: (1045, "Access denied for user 'root'@'47.99.57.53' (using password: YES)")

错误日志2

message: Database connection failed, cause: (1049, "Unknown database 'test999')

排查方法

当出现Database connection failed错误信息的时候,请检查自己的配置是否错误,或者网络是否不通,请排查自己的账号是否在rds-mysql 的白名单当中。当出现无法链接错误的时候,其原因会非常详细的出现在cause原因后面,可以根据错误原因进行排查,大多是权限、密码、地址错误等。

说明 目前暂时不支持通过vpc连接rds-mysql,如果填入vpc网络地址会造成网络不通连接失败。请在address参数中配置rds-mysql所在的公网地址。vpc连接计划将在后续版本进行支持。

解决方案

排查原因后重新配置函数重启数据加工服务,连接错误或者权限错误数据加工无法恢复的错误,需要手动配置参数后重新启动。

SQL语法错误

加工规则

e_table_map(res_rds_mysql(address="xxx",username=xxx,password="xx",database="xx",sql="inset into test values(1,"aini")",field="processid",output_fields=["name","xixi"]))

错误日志

"errorMessage\": \"The sql_query field only supports database query syntax\\nInvalid Settings \\\"insert into test values(1,aini)\\\"\\nDetail: None\", \"requestId\": \"\"}

排查方法

出现如上错误信息,原因是填入配置中的sql语法错误。首先sql语法仅支持select从数据库中读取数据的模式。其次,当写入数据库的select语法是错误的时候,也会引发fetch data error错误,此时可以根据错误原因具体分析sql中的错误。

解决方案

修复sql语句的错误,需要注意sql只支持select查询语句。

持续刷新错误

加工规则

e_table_map(res_rds_mysql(address="xxx",username=xxx,password="xx",database="xx",table="test,field="processid",output_fields=["name","xixi"],refresh_interval=30))

错误日志

"errorMessage\": \"Database connection failed, cause: (, \\\"Can't connect to MySQL server on 'rm-wz9z68i4itrk4v8d9yo.mysql.' (timed out))

排查方法

该错误信息为rds-mysql数据库将白名单授权取消导致无法链接的错误。当持续加工过程中遇到错误,例如部分网络震荡,会自动进行重试。如果遇到权限等被取消的错误,需要手动恢复。可以根据报错查找可能导致链接超时的原因。

解决方案

在持续获取数据的过程中可能因为远程rds-mysql数据库权限变动或者表被删除等情况,此时数据库会报链接错误的问题,可以根据错误原因查看rds-mysql数据库中,是否表数据或者权限发生了变动。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。