AWS Glue 连接 RDS MySQL

3
我希望测试从Glue到RDS的连接。为此,我创建了一个具有公共访问和密码以及IAM身份验证的RDS MySQL实例。
我创建了一个具有对RDS、Glue(和S3以防万一)权限的角色:
[AmazonRDSFullAccess AmazonS3FullAccess AWSGlueServiceRole AmazonRDSDataFullAccess]

我已经从另一个连接为Redshift创建了一个S3端点。

安全组针对Glue进行了自引用,并打开了外部连接(本地PC)的3306端口。

当我测试连接时,出现以下错误:

Check that your connection definition references your JDBC database with correct URL syntax, username, and password. Could not create connection to database server.


Exiting with error code 30

我可以使用以下方式从本地计算机连接到实例:

mysql -h database-1.xxx.eu-west-1.rds.amazonaws.com -P 3306 -u admin -p

你能告诉我连接从黏合剂中缺少什么吗?

2个回答

1

我也遇到了这个问题,而且在我的情况下是由于RDS MySQL版本8.0引起的。默认情况下,RDS会创建mysql数据库实例,并使用版本8.0.20(在我的情况下)。在花费了相当长的时间来弄清楚为什么JDBC无法连接时,我得出结论,MySQL 8.0不受支持,或者至少需要以某种特殊的、未记录的方式进行设置。

解决方案是使用MySQL 5.7或MariaDB。使用这些数据库引擎,AWS Glue和JDBC之间没有任何问题。

我认为MySQL 8.0无法工作的原因可能是它引入了对连接和密码处理的更改。这也是为什么MySQL 8.0与WordPress存在问题的原因。


0

请确保您的连接字符串格式正确,如下所示 -

jdbc:mysql://***aws_connection_url***amazonaws.com:3306/database_name

同时确保在创建Glue连接时,您的VPC名称是包含数据存储(与RDS实例相同)的那个,并且VPC中的子网也匹配。我已经通过Glue连接到了RDS,在我的安全组中打开了所有TCP端口和安全组自引用。您可以尝试这些步骤。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接