标签: amazon-rds

使用Flask-SQLAlchemy连接到AWS RDS MySQL数据库实例

对于我的Flask应用程序,我想使用Flask-SQLAlchemy扩展来连接我在AWS RDS上创建的数据库实例.

当我尝试连接时,应用程序超时,我收到以下错误:

sqlalchemy.exc.OperationalError :( OperationalError)(2003,"无法连接到MySQL服务器'xxxxxxxxxxxxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com'(60")

我的代码看起来像这样:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
application = Flask(__name__)

application.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://{master username}:{db password}@{endpoint}/{db instance name}'
db = SQLAlchemy(application)

@application.route('/')
def hello_world():
    return 'Hello World'

if __name__ == '__main__':
    application.run()
Run Code Online (Sandbox Code Playgroud)

瓶-SQLAlchemy的文档说,SQLALCHEMY_DATABASE_URI对mysql数据库连接的格式应该是这样的:

mysql://username:password@server/db
Run Code Online (Sandbox Code Playgroud)

此外,我可以检查AWS RDS控制台以获取有关我的数据库实例的信息.控制台看起来像这样.

现在我假设SQLAlchemy中的"用户名"是指AWS RDS控制台中的"主用户名",SQLAlchemy中的"server"是指AWS RDS控制台中的"端点","db"是指"数据库"实例名称"

我究竟做错了什么??

如果有人可以使用AWS RDS控制台术语为我描述SQLALCHEMY_DATABASE_URI,那么这将完全解决问题.

mysql amazon-rds flask-sqlalchemy

18
推荐指数
2
解决办法
2万
查看次数

RDS与云形成和AZ问题

我正在使用云形成来创建包含RDS实例的设置.

由于以下错误,我在创建RDS实例时遇到一些困难:

数据库子网组不符合可用区域覆盖要求.请添加子网以覆盖至少2个可用区域.目前的报道:1

问题是整个设置都在一个AZ上......我该怎么做?只是在不同的AZ中创建一个额外的子网,其中没有任何内容只适用于RDS?

也许AWS可以通过某种方式自动创建该子网,让我摆脱困境.我不想要那个额外的子网,我不想让我的用户为此选择另一个AZ负担.

amazon-web-services amazon-rds aws-cloudformation

18
推荐指数
1
解决办法
6551
查看次数

您可以使用Amazon的RDS复制特定的数据库或表

我们正在使用Amazon RDS,我们有一个MASTER复制到SLAVE.

我们想要创建一个新的slave,它只能从master中复制特定的数据库或表.

默认情况下,RDS只是将整个主数据库复制到从属数据库.但我们只想做特定的表格.我知道这在MySQL中是可能的,但我不确定RDS,我无法在任何地方找到答案.

这些设置存在于MySQL中,我没有在RDS的自定义参数设置中看到它们,除非我遗漏了什么.

--replicate-ignore-db=db_name
--replicate-ignore-table=db_name.tbl_name
Run Code Online (Sandbox Code Playgroud)

mysql replication amazon-rds

17
推荐指数
1
解决办法
8200
查看次数

备份MySQL Amazon RDS

我正在尝试在AWS外部设置副本服务器,并且主服务器正在AWS RDS上运行.而且我不想让我的主人停机.所以我设置了我的从节点,现在我想备份我在AWS的当前数据库.

mysqldump -h RDS ENDPOINT -u root -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 --all-databases > /root/dump.sql

我在我的VM上测试了它并且工作正常但是当它与RDS捆绑时它给了我错误

mysqldump: Couldn't execute 'FLUSH TABLES WITH READ LOCK': Access denied for user 'root'@'%' (using password: YES) (1045)

是因为我没有超级用户权限或者我如何解决这个问题?请有人建议我.

mysql mysqldump amazon-web-services amazon-rds

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

从Azure连接到Amazon RDS上的Postgres数据库的超时

在数据库连接闲置一段时间后,我的应用程序中出现以下异常:

... An I/O error occured while sending to the backend.; nested exception is org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.] with root cause

    java.net.SocketException: Operation timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
Run Code Online (Sandbox Code Playgroud)

在psql中发生同样的问题我没有连接到本地数据库的问题,所以我很确定问题出在RDS上.

psql=> select 'ok';
SSL SYSCALL error: Operation timed out
psql=> select 'ok';
SSL SYSCALL error: EOF detected
The connection to the server was lost. Attempting reset: Succeeded.
Run Code Online (Sandbox Code Playgroud)

我发现了另一个问题,这个问题表明可以改善这种情况的工作(超时现在需要更长时间),但没有解决它.

我正在使用Spring Boot with JDBC(tomcat连接池)和JDBCTemplate.

有解决方法还是修复?也许强制连接池测试和重新连接?我如何在这种环境下做到这一点?

编辑:这是我的连接字符串

jdbc:postgresql://myhost.c2estvxozjm3.eu-west-1.rds.amazonaws.com/dashboard?tcpKeepAlive=true
Run Code Online (Sandbox Code Playgroud)

解:

根据所选答案中的建议编辑RDS服务器端TCP_KeepAlive参数.我正在使用的参数是:

tcp_keepalives_count      5
tcp_keepalives_idle     200 …
Run Code Online (Sandbox Code Playgroud)

postgresql spring-jdbc amazon-rds spring-boot

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

我需要亚马逊的EC2,Cloudfront,RDS吗?

我想在亚马逊的服务器上发布一个网站:

  1. 运行CakePHP
  2. 使用MySQL来存储数据
  3. 允许用户通过Flash上​​传音频(目前使用托管的Flash Media Server),然后再收听文件

我是否需要亚马逊的EC2用于网站,RDS用于MySQL数据库,CloudFront用于FMS?我真的很喜欢我应该使用哪些服务的演练.

谢谢.

amazon-ec2 amazon-rds amazon-cloudfront

16
推荐指数
1
解决办法
6768
查看次数

如何从RDS实例访问mysql日志

如何从Amazon RDS实例访问MySQL日志(主要是为了查看插入/更新/删除语句)?

mysql amazon-rds

16
推荐指数
2
解决办法
2万
查看次数

有没有人想出如何扩展亚马逊RDS阅读副本?

我最近设置了一个只读副本,以便从我的Amazon多可用区RDS实例中获取一些读取负载.亚马逊文档明确指出,"由您的应用程序决定如何在您的只读副本中分配读取流量".

有没有人想出一种可管理的方式来扩展只读副本?将我的应用程序的不同部分硬编码为从特定副本读取,似乎不是一个非常可扩展的解决方案.有没有办法设置它类似于将EC2实例放在负载均衡器后面?

mysql replication amazon-web-services amazon-rds

16
推荐指数
2
解决办法
8554
查看次数

AWS RDS PostgreSQL错误"剩余连接插槽保留用于非复制超级用户连接"

在仪表板中,我看到数据库实例当前有22个打开的连接,阻止了与错误的新连接:

剩余的连接槽保留用于非复制超级用户连接.

我正在从EC2实例上运行的Web服务API访问数据库,并始终保持最佳实践:

Connection connection = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
Class.forName(DB_CLASS);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(SQL_Query_String);
...
resultSet.close();
statement.close();
connection.close();
Run Code Online (Sandbox Code Playgroud)
  1. 我可以在代码中做些其他事情吗?

  2. 我应该在数据库管理中做些什么吗?

  3. 有没有办法定期关闭连接?

sql postgresql database-connection amazon-web-services amazon-rds

16
推荐指数
4
解决办法
2万
查看次数

PostGIS版本阻止了Amazon RDS上的PostgreSQL升级

我正在尝试将我的RDS实例从9.5.4升级到9.6.1,并且我因为需要首先升级的PostGIS版本的错误而被阻止.

数据库实例处于无法升级的状态:PreUpgrade检查失败:无法升级实例,因为有一个或多个数据库安装了旧版本的PostGIS.请升级PostGIS的所有安装,然后重试.

RDS 9.5.4支持的PostGIS的最高版本是2.2.2

alter extension postgis update

产量

注意:已经安装了扩展名为"postgis"的版本"2.2.2"

我尝试明确升级到9.6.1中的版本

将扩展postgis更新为'2.3.0'

入门

[错误]错误:扩展名"postgis"没有从版本"2.2.2"到版本"2.3.0"的更新路径

所以我的问题是:我该如何升级?我怀疑我可以在升级之前删除扩展并在之后安装新版本,但我不知道这将对我的数据做什么,或者是否能正确升级我的空间结构或功能.

我已经检查了文档中提到的这种情况

postgresql postgis amazon-rds

16
推荐指数
3
解决办法
2482
查看次数