使用外部表后,查询不了,报错Access denied for user 'userxing'@'172.28.141.33' (using password: YES),是账号权限问题?还是白名单没加入正确?外部表连的rds,但是账号是可以访问的,dataworks那边的链接数据源也是用了同一个账号,密码里有个+号,那password里如果有个+号,是这个+号导致了吗?set odps.sql.hive.compatible = true;
CREATE EXTERNAL TABLE mc_vpc_rds_external (
id int,
name string
)
STORED BY 'com.aliyun.odps.jdbc.JdbcStorageHandler'
location 'jdbc:mysql://rm-2ze01y92y1tzp.mysql.rds.aliyuncs.com:3306/rds_test?useSSL=false&user=&password=**&table=rds_mc_external'
TBLPROPERTIES(
'mcfed.mapreduce.jdbc.input.query'='select * from rds_test.rds_mc_external',
'networklink'='networklink4mysql'
);
这个错误看起来像是一个数据库连接权限问题,可能是由以下几个原因造成的:
这个错误提示通常表示你在尝试访问MySQL数据库时,使用的用户名和密码不正确。在这个错误信息中,"userxing"是你的用户名,而"172.28.141.33"可能是你当前客户端的IP地址。
关于你提到的密码中的+号问题,一般来说,MySQL数据库在验证用户名和密码时会忽略密码中的特殊字符,所以+号应该不会影响你的连接。但是,如果你在其他地方使用了这个用户名和密码,并且那里的密码存储规则不允许包含特殊字符,那么+号可能会导致问题。
建议你检查以下几点:
确保你在MaxCompute中使用的外部表连接字符串是正确的,包括用户名、密码和数据库名称。
确保你在MaxCompute中使用的外部表连接字符串中的用户名和密码与你RDS数据库中的用户名和密码匹配。
如果可能,尝试直接在MySQL命令行中使用相同的用户名和密码进行连接,以确认它们是否有效。
用户名或密码错误
https://help.aliyun.com/zh/rds/support/what-do-i-do-if-the-error-1045-access-denied-for-user-error-message-is-displayed-when-i-connect-to-an-apsaradb-rds-for-mysql-instance?spm=a2c4g.11186623.0.i37 特殊符号按照这个url编码转换下再试下
https://baike.baidu.com/item/URL%E7%BC%96%E7%A0%81/3703727#2。此回答整理自钉钉群:MaxCompute开发者社区1群
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。