我们目前正在尝试使用在RDS上运行的AWS Aurora(mysql)数据库来解决运行dotnet核心和EF核心的问题.
我们在一些选择中通过EF获得"未知数据库"错误,问题是它们相当罕见且数据库显然存在.我在下面添加了错误,遗憾的是我只能在4天前找到另一个问题(AWS Aurora服务器有时会回复"未知数据库:...")但是没有任何令人满意的回复.
我很感激任何帮助,甚至承认这不仅仅是我和另一个人.
fail: MySql.Data.EntityFrameworkCore.Query.Internal.MySQLQueryCompilationContextFactory[1]
An exception occurred in the database while iterating the results of a query.
MySql.Data.MySqlClient.MySqlException: Unknown database 'mydb_dev'
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.ReadOk(Boolean read)
at MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(String databaseName)
at MySql.Data.MySqlClient.MySqlConnection.Open()
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open()
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext()
at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
MySql.Data.MySqlClient.MySqlException: Unknown database 'mydb_dev'
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.ReadOk(Boolean read)
at MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(String databaseName)
at MySql.Data.MySqlClient.MySqlConnection.Open()
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open()
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext()
at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
Run Code Online (Sandbox Code Playgroud) 按照此处的说明,我创建了以下IAM角色
"DatabaseS3Role": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": ["rds.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
},
"Policies": [
{
"PolicyName": "AllowAuroraToReadS3",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket"],
"Resource": {"Fn::Join": ["", [
"arn:aws:s3:::",
{"Fn::Join": ["-",[
{"Ref": "ClientName"},
{"Ref": "SourceBucketName"},
{"Ref": "EnvironmentType"},
{ "Fn::FindInMap" : [ "Regions", { "Ref" : "AWS::Region" }, "Name" ] }
]]} ,
"*"
]]}
}
]
}
} …
Run Code Online (Sandbox Code Playgroud) amazon-s3 amazon-web-services aws-cloudformation amazon-iam amazon-aurora
我正在尝试将数据从AWS S3复制到Aurora Postgres.目前我的流程如下:
COPY FROM STDIN ...
"命令将数据从输入流加载到Aurora postgres.我想知道是否有命令直接从S3复制到Aurora postgres.
我正在尝试使用 Terraform 使用 AWS Aurora V2 部署无服务器 MySQL 8.0 服务。
\nTerraform 详细信息(不是最新版本,但应与最新的 AWS 提供商版本兼容):
\nTerraform v0.15.4\non linux_amd64\n+ provider registry.terraform.io/hashicorp/aws v4.12.0\n+ provider registry.terraform.io/hashicorp/consul v2.15.1\n+ provider registry.terraform.io/hashicorp/random v3.1.3\n+ provider registry.terraform.io/hashicorp/template v2.2.0\n+ provider registry.terraform.io/hashicorp/vault v3.5.0\n
Run Code Online (Sandbox Code Playgroud)\n这是相关main.tf
文件:
resource "aws_rds_cluster" "database" {\n cluster_identifier = var.cluster_identifier\n db_subnet_group_name = aws_db_subnet_group.db_subnet_group.name\n vpc_security_group_ids = var.vpc_security_group_ids\n engine_mode = "serverless"\n enable_http_endpoint = var.enable_http_endpoint\n master_username = var.master_username\n master_password = random_password.rng.result\n database_name = var.name\n backup_retention_period = var.backup_retention_period\n skip_final_snapshot = var.skip_final_snapshot\n deletion_protection = var.deletion_protection\n engine = "aurora-mysql"\n engine_version …
Run Code Online (Sandbox Code Playgroud) amazon-web-services terraform amazon-aurora terraform-provider-aws
今天,我在 us-west-2 中为 PostGreSql 创建了 Amazon Aurora Serverless 集群,确保 VPC 和安全组可公开访问。但我无法使用 Navicat/PgAdmin4 桌面客户端中的 aurora 端点连接该集群。然后我尝试从与 Aurora Serverless 相同的安全组/vpc 中的 EC2 实例进行尝试,然后它就成功了。
来自 AWS 论坛,
您无法为 Aurora
Serverless
数据库集群提供公共 IP 地址。您可以从 基于 Amazon VPC 服务的Virtual Private Cloud (VPC)内访问 AuroraServerless
数据库集群。only
来源: https://forums.aws.amazon.com/thread.jspa? messageID=862860&tstart=0
似乎它使用内部 AWS 网络设置,目前仅支持来自 VPC 内部的连接,并且它必须与部署无服务器集群的 VPC 相同。
所以现在基本上我的问题是,
是否有任何解决方法可以将 Aurora Serverless 与 Navicat 或 PgAdmin4 等客户端连接?
我正在尝试将我们的SQLAlchemy
连接与我们的RDS Aurora
集群连接起来。问题是,就在我们连接之前,我们需要通过boto3
. 当我们在应用程序启动时检索此密码时,我们会在 30 分钟后出现问题(从那时起SQLAlchemy
开始刷新连接但身份验证令牌不再有效)。我知道在create_engine
方法(示例)中有使用创建者方法的解决方法,但是这使得解决方案数据库引擎特定于(例如带有 psycopg2 驱动程序的 postgres)。
我想要一个不包括驱动程序选择的解决方案,让SQLAlchemy
我为我做这件事。但是,就在SQLAlchemy
我想要执行此 boto 调用并更改 URL的连接之前。我尝试了不同的方法,使用插件或自定义池。然而,我尝试的所有这些方法都没有成功,因为我无法在连接之前影响 url(使用插件)或者我无法获取 url(使用自定义池)。
你们都知道如何解决这个问题而无需将代码绑定到特定的 DBMS 驱动程序。想听听你的意见
我正在尝试将Aurora mysql 5.6.10(启用数据 API)实例中的binlog_format参数更新为ROW,但我无法更改它。
我已相应更新了自定义参数组,但当我运行时,这些更改不会反映在集群上show variables like 'binlog_format'
。
Modifying
状态,但完成后参数尚未更新。An error occurred (InvalidDBClusterStateFault) when calling the StopDBCluster operation: Stop-db-cluster is not supported for these configurations
。我还有其他失踪的方式吗?
我正在实施 Postgres Aurora 来接受交互式和批量输入。如果我使用RDS,我会使用ClusterControl来实现多主复制,然后使用连接池来建立节点关联。有人指出,Multimaster for Aurora 仅限 MySQL。ClusterControl 可以与 Aurora 配合使用吗?是否有替代方案,或者我将被迫使用 RDS(或使用单个写入主机)?
提前致谢。
我有一些创建 AWS Aurora RDS 集群的 Terraform 代码:
resource "aws_rds_cluster" "default" {
provider = aws.customer
cluster_identifier = "my_id"
engine = "aurora-mysql"
engine_version = "5.7.mysql_aurora.2.03.2"
database_name = var.db_name
port = var.db_port
master_username = var.db_master_username
master_password = random_password.sqlpassword.result
backup_retention_period = 5
preferred_backup_window = "07:00-09:00"
skip_final_snapshot = true
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.rds.id]
deletion_protection = true
}
Run Code Online (Sandbox Code Playgroud)
这段代码已经工作正常有一段时间了,直到最近因此terraform apply
错误而失败Error: Failed to modify RDS Cluster (my_id): InvalidParameterCombination: Cannot upgrade aurora-mysql from 5.7.mysql_aurora.2.07.2 to 5.7.mysql_aurora.2.03.2
长话短说,AWS 在维护时段升级了次要版本号,并拒绝允许 Terraform 降级数据库。我同意 AWS 这样做,但我不想每次发生这种情况时都必须提交新的 Terraform …
amazon-web-services terraform amazon-aurora terraform-provider-aws
amazon-aurora ×10
amazon-rds ×3
amazon-iam ×2
amazon-s3 ×2
mysql ×2
postgresql ×2
terraform ×2
.net ×1
asp.net-core ×1
connectivity ×1
sqlalchemy ×1