我用 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 -p
Enter 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 是唯一一个空且可写的?
大话西游666
慕姐4208626
相关分类