在大数据计算MaxCompute中,使用外部表后,查询不了,报错是什么问题?[阿里云MaxCompute]

使用外部表后,查询不了,报错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’
);

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 这个错误看起来像是一个数据库连接权限问题,可能是由以下几个原因造成的:

    1. 数据库连接的用户名和密码不正确:检查一下数据库连接的用户名和密码是否正确。尤其是如果密码中含有特殊字符(如 + 号),可能需要进行特殊的编码或转义处理。
    2. 数据库的 IP 访问控制策略不允许来自 DataWorks 的 IP 地址连接:请检查一下数据库的 IP 访问控制策略,看看是否允许来自 DataWorks 的 IP 地址连接。如果没有允许,请添加相应的 IP 白名单规则。
    3. 数据库用户的权限不足:请检查一下数据库用户是否有足够的权限访问所需的数据表或视图。如果没有,请尝试增加相应的权限。
  2. 这个错误提示通常表示你在尝试访问MySQL数据库时,使用的用户名和密码不正确。在这个错误信息中,”userxing”是你的用户名,而”172.28.141.33″可能是你当前客户端的IP地址。

    关于你提到的密码中的+号问题,一般来说,MySQL数据库在验证用户名和密码时会忽略密码中的特殊字符,所以+号应该不会影响你的连接。但是,如果你在其他地方使用了这个用户名和密码,并且那里的密码存储规则不允许包含特殊字符,那么+号可能会导致问题。

    建议你检查以下几点:

    1. 确保你在MaxCompute中使用的外部表连接字符串是正确的,包括用户名、密码和数据库名称。

    2. 确保你在MaxCompute中使用的外部表连接字符串中的用户名和密码与你RDS数据库中的用户名和密码匹配。

    3. 如果可能,尝试直接在MySQL命令行中使用相同的用户名和密码进行连接,以确认它们是否有效。