为了账号安全,请及时绑定邮箱和手机立即绑定

使用Django连接到AWS RDS MySQL数据库时了解要用作'NAME'的数据库

使用Django连接到AWS RDS MySQL数据库时了解要用作'NAME'的数据库

蛊毒传说 2021-05-30 03:55:10
我用 RDS 创建了一个新的 AWS mysql 数据库实例,我正在尝试从我机器上的 Django 应用程序连接到它。Django 要求默认数据库连接的格式如下settings.py:DATABASES = {  'default': {    'ENGINE': 'django.db.backends.mysql',    'NAME': 'innodb',    'USER': 'username',    'PASSWORD': 'password',    'HOST': '--------.us-west-2.rds.amazonaws.com',    'PORT': '####'  }}我的问题与'NAME'参数有关。我使用RDS控制台中提供的终端节点和端口号从命令行连接到AWS实例,并检查那里有哪些数据库。这是我用RDS新建的一个全新的数据库实例,有5个数据库。$ mysql -h ---------.us-west-2.rds.amazonaws.com -P #### -u username -pEnter password:mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || innodb             || mysql              || performance_schema || sys                |+--------------------+这些数据库中唯一一个空的是名为innodb. 起初我以为该NAME参数应该是“ mysql”,因为那是我正在使用的数据库服务器的名称。但是当我使用“mysql”作为名称并运行时,python manage.py migrate我收到一条错误消息django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1044, "Access denied for user 'username' to database 'mysql'"))将 更改NAME为 'innodb' 让我使用migrate命令连接和写入表。为什么我需要使用innodb数据库而不是mysql或其他任何数据库?当我在 AWS 上创建新的 RDS 实例时,我没有看到任何提及正在创建的 5 个数据库,而且我找不到任何关于连接到 RDS 实例时应该使用的名称的提及。这 5 个数据库的目的是什么,为什么 innodb 是唯一一个空且可写的?
查看完整描述

3 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

您可以在本地系统上安装 mysql 客户端,并连接到 RDS(使用端点)。这将给出所有数据库名称,等等。

AWS 自己也创建了几个数据库,对于 postgres 我知道它创建为“rdsadmin”(用于其内部目的)

您创建的数据库名称将出现在控制台的“详细信息->配置->数据库名称”部分(位于“创建时间”下方)下。


查看完整回答
反对 回复 2021-06-01
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我遇到了同样的问题,对于AWS来说不是很直观。

但是,如果打开de RDS控制台并打开所涉及的实例,则可以在“详细信息/配置”下看到数据库名称和用户:

//img1.sycdn.imooc.com//60b5ec130001369401930099.jpg

查看完整回答
反对 回复 2021-06-01
  • 3 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信