标签: amazon-rds

使用 Terraform 在 AWS RDS PostgreSQL 上启用 PostGIS

找不到使用官方 aws_db_instance 资源激活 PostGIS 扩展的方法,是否还有其他选项可以使用 Terraform 激活它?

postgresql amazon-rds terraform terraform-provider-aws

7
推荐指数
1
解决办法
326
查看次数

MySQL Amazon RDS:超出锁定等待超时

在 Mysql (Amazon RDS) 上,当我尝试运行以下 SQL 查询时

UPDATE
    table1 INNER JOIN table2 USING (CommonColumn)
SET
    table1.col1 = table2.x,
    table1.col2 = table2.y
Run Code Online (Sandbox Code Playgroud)

大约 52 秒后,我始终收到此错误:

Error Code: 1205. Lock wait timeout exceeded; try restarting transaction
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个问题?

table2 有大约 1700 万条记录,table2 是 table1 的子集,有 400 万条记录。问题可能是表的大小还是我的查询有问题?

mysql deadlock timeout amazon-rds

6
推荐指数
1
解决办法
6525
查看次数

使用实体框架连接到 Amazon RDS

我正在运行 RDS MySQL 服务器,并且正在将我当前的环境迁移到此服务器。我可以很好地连接 MySQL Workbench,但是当我尝试通过我的 .NET 应用程序与实体框架连接时,我得到以下信息:

EntityException: The underlying provider failed on Open.
...
MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
...
SocketException (0x2af9): No such host is known
Run Code Online (Sandbox Code Playgroud)

我的连接字符串如下所示:

    <add name="MyEntities" connectionString="metadata=res://*/Database.csdl|res://*/Database.ssdl|res://*/Database.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=name.*.eu-west-1.rds.amazonaws.com,3306;user id=Username;password=Password;persist security info=True;database=DBName&quot;" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

因为我可以在 MySQL Workbench 中连接,所以我相信 AWS 上的安全设置是正确的。希望你们中的一些人能指出我正确的方向。

mysql entity-framework amazon-web-services amazon-rds

6
推荐指数
1
解决办法
2254
查看次数

如何重命名 Amazon RDS 托管的 PostgreSQL 数据库

我已经从现有的 RDS PostgreSQL 数据库恢复了一个快照。现在我想重命名该数据库,但在 AWS 文档中的任何地方都找不到如何执行此操作。

我也找不到如何使用主密码(我希望让我这样做)。

postgresql amazon-web-services amazon-rds

6
推荐指数
1
解决办法
1814
查看次数

AWS RDS 为数据库创建用户

我有一个在 AWS 中启动的 RDS 实例,运行 SQL Server 2012。我能够正常登录和创建新数据库(通过 SSMS 和 sqlcmd.exe)。

我面临的问题是,由于在 RDS 创建过程中没有足够的“godmode”帐户设置权限,我无法为我的每个应用程序数据库创建用户。

我在此 RDS 实例上有 > 5 个应用程序及其数据库,并希望对其进行设置,以便每个应用程序都有自己的登录名,并且仅是其自己数据库的用户。

我可以创建登录名,但我不能将该登录名作为用户分配给数据库。这是不能做的事吗?我知道 RDS 有限制,但这似乎应该是可能的。我的用例不可能那么独特!

我正在尝试像这样设置用户:

DECLARE @Username nvarchar(255) = 'test1';
DECLARE @Password nvarchar(255) = 'sUp3rS3crEt';

USE [Application1] 

IF NOT EXISTS 
    (SELECT name  
     FROM master.sys.server_principals
     WHERE name = @Username)
BEGIN
    EXEC sp_addlogin @Username, @Password
END

BEGIN
EXEC sp_adduser @Username, @Username, 'db_owner'
END
Run Code Online (Sandbox Code Playgroud)

在 sp_adduser 上失败

Msg 15247, Level 16, State 1, Procedure sp_adduser, Line 35 [Batch Start Line 0] 
User does not …
Run Code Online (Sandbox Code Playgroud)

sql t-sql amazon-web-services amazon-rds sql-server-2012

6
推荐指数
1
解决办法
1万
查看次数

为 mysql AWS RDS 传递给 sqlalchemy create_engine() 的正确连接字符串

我不知道(也不可能找到例子)的连接字符串传递给sqlalchemycreate_engine(),让我连接到mysql数据库Amazon Web Service RDS。文档很简单,但我绊倒了。文档状态:

mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
Run Code Online (Sandbox Code Playgroud)

让我们说:

  • 我的用户是: hellothere
  • 密码是: Comp<'/"/>{}]:["licated
  • 主机是: sandbox.cbaspyqqzfab.us-west-2.rds.amazonaws.com
  • 端口是: 3306
  • 数据库名称是: nameofdatabase

这有什么问题?

    conn_str = 'mysql+mysqldb://<hellothere>:<Comp<'/"/>{}]:["licated>@<sandbox.cbaspyqqzfab.us-west-2.rds.amazonaws.com>[:<3306>]/<nameofdatabase>'
    engine = sqlalchemy.create_engine(conn_str, echo=True)
Run Code Online (Sandbox Code Playgroud)

错误信息

Traceback (most recent call last): File
 "C:/GitHub/blah/data/__init__.py", line 16, in <module> main() File
 "C:/GitHub/blah/data/__init__.py", line 12, in main init_db() File
 "C:/GitHub/blah/data/__init__.py", line 8, in init_db
 DbSessionFactory.global_init(db_file=dbfilepath) File
 "C:\GitHub\blah\data\dbsession.py", line 25, in global_init engine =
 sqlalchemy.create_engine(conn_str, echo=True) File
 "C:\Python\Anaconda3\envs\CE\lib\site-packages\sqlalchemy\engine\__init__.py",
 line 387, in create_engine return strategy.create(*args, **kwargs)
 File
 "C:\Python\Anaconda3\envs\CE\lib\site-packages\sqlalchemy\engine\strategies.py", …
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy amazon-rds python-3.x

6
推荐指数
1
解决办法
3618
查看次数

多可用区 RDS 测试故障转移和连接监控

我的问题有两个部分:

  1. 出于测试目的启动 RDS 故障转移的最佳方法是什么?
  2. 如何在故障转移期间监控连接以观察 AWS 将用户重新连接到备用实例所需的时间?

关于第 (1) 部分:如果我理解正确,所有实例修改都是在备用服务器上进行的,然后 AWS 通过在主服务器更新时将 CNAME 翻转到备用服务器来进行故障转移,所以如果我要创建任何类型的实例修改并选择“立即应用”,它应该会导致故障转移,对吗?

关于第 (2) 部分:我正在专门寻找一种监视 Oracle RDS 实例故障转移的方法,无论是通过 lambda 函数、bash 脚本还是其他方式。据我所知,即使我允许所有 ICMP 流量通过安全组,也不可能对 RDS 使用 ping。我可以使用 telnet 或 SQL 客户端毫无问题地进行连接。不过,我想要的是某种方式,例如在故障转移期间定期 ping 数据库以查看与连接字符串关联的 IP 何时切换以及需要多长时间。有什么建议?

monitoring failover amazon-web-services amazon-rds

6
推荐指数
1
解决办法
7988
查看次数

AWS:无法将 Amazon QuickSight 连接到 RDS

我们在 West-1(加利福尼亚北部)有几个 MySQL RDS 实例,并希望使用 QuickSight 创建一些报告。第一个问题是 QuickSight 仅在 West-2(俄勒冈)可用并且没有显示我们的 RDS,所以我在 West-2 中创建了一个只读副本数据库。

我仍然无法连接到我的实例,并显示以下错误:连接失败。确保您的实例可从相应的 Amazon QuickSight IP 地址范围访问。

我已经在入站规则中创建了一个允许 IP 54.70.204.128/27 的安全组并将其应用于我的实例。最终允许我连接到实例的是将实例的“公开可用”字段设置为“是”。

但是,我的老板更喜欢它保持“否”,我们还能够使用 MySQL SSH 连接方法通过 DOMO 连接到非公共实例。

是否可以在不将“公共可访问”设置为“是”的情况下使 QuickSight 和 RDS 之间的连接正常工作?

mysql database-connection amazon-web-services amazon-rds amazon-quicksight

6
推荐指数
2
解决办法
5139
查看次数

出站流量对于分配给 AWS RDS 实例的 AWS 安全组意味着什么?

如果要自己动手,在 AWS RDS 管理控制台中按“启动数据库实例”就相当于启动服务器守护程序。

控制台还具有将“安全组”关联到数据库实例的设置。

安全组本身具有“入站”和“出站”流量的设置。

安全组的入站和出站选项卡

“入站”流量意味着来自某处某个客户端的对服务器的请求。

“出站”流量是什么意思?这些仅仅是数据库服务器的响应吗?在这种情况下,入站和出站始终具有相同的端口范围和 IP 地址是否有意义?

与先前问题的关系

此 RDS 实例将与 ElasticBeanstalk 实例耦合,而不是VPC

amazon-web-services amazon-rds aws-security-group

6
推荐指数
1
解决办法
3330
查看次数

将带有分号分隔符的 CSV 文件从 S3 导入到 RDS Postgres 数据库

;我正在尝试将使用分号而不是逗号作为分隔符的CSV 文件从 S3 导入到 AWS RDS Postgres 表。

SELECT aws_s3.table_import_from_s3 ('tmp_foo','','(format csv, delimiter '','', header)', 'my-bucket', 'path/file.csv','eu-west-1');
Run Code Online (Sandbox Code Playgroud)

这会失败并出现错误

ERROR: Semicolon is not allowed in options
Run Code Online (Sandbox Code Playgroud)

同样的事情使用delimiter '',''效果很好。

如何转义分号以使其起作用?例如delimiter ''\;''不起作用。

从 S3 导入是最新 RDS Postgres 版本中提供的 AWS 扩展: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html

我正在使用 Postgres Aurora 11.6。

csv postgresql amazon-s3 amazon-web-services amazon-rds

6
推荐指数
1
解决办法
2252
查看次数