亚马逊支持
因此,在 David Wolever 回复之后,我最终也与亚马逊的人进行了交谈。以防万一你们中的任何人再次遇到这个帖子。仅使用内部服务器 IP 是不够的,但这是一个好的开始。如果您正在为 Postgresql 实例(最好是 Natty Narwhal)运行 Ubuntu,请确保编辑 pg_hba.conf 和 postgresql.conf 文件。
您通常可以在以下位置找到这两个文件:/etc/postgresql/8.4/main/(pg_hba.conf 或 postgresql.conf)
请注意,我们在堆栈中使用 Postgresql 8.4,在我们的测试中,它被证明是在 Natty Narwhal 上运行的最一致和最可靠的 Postgresql 版本。
对于不同版本的 Postgresql(9.1、9.0 等),您可以找到这两个文件的目录与上面列出的不同。确保您知道这些文件的正确目录。
步骤1
转到 Amazon 管理控制台并确保两个实例都在同一个安全组下。Postgresql 和 Django 默认使用 5432 和 8000,所以请确保你打开了这两个端口!
第2步
(在 postgresql 实例的终端上执行此操作)
须藤 vim postgresql.conf
按键盘上的“i”开始进行更改。使用向下箭头键,直到遇到
LISTEN_ADDRESSES: '本地主机'
去掉前面的哈希标签,而不是'localhost',添加你的postgresql实例的私有IP (你可以在你的EC2管理控制台上找到私有IP),你还必须添加127.0.0.1。
例子:
LISTEN_ADDRESSES: '私有 ip,127.0.0.1'
确保用逗号分隔私有 ip 和本地主机地址,并将其全部放在一个引号内。
完成更改后,按 ESC 并按 ZZ(大写两次以保存更改)
第 3 步
须藤 vim pg_hba.conf
使用向下箭头键,直到遇到如下所示的内容:
Database administrative login by UNIX sockets
local all postgres ident
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 md5
local django_db django_login md5
host replication postgres 127.0.0.1/32 md5
host replication postgres ::1/128 md5
再一次,按键盘上的“i”并按照我上面的方式对其进行更改。
您会注意到在 IPv6 下,我有 django_db 和 django_login,将其更改为您的 postgresql 数据库的名称和您分别用于您的 postgresql 数据库的用户登录名。
完成更改后,按 ESC 并按 ZZ(大写两次以保存更改)
第 4 步(几乎完成 Hi5!)
在终端中使用以下命令重新启动 postgresql 服务器:
sudo /etc/init.d/postgresql 重启
恭喜!服务器已启动并正在运行,但是还有最后一步。
第 5 步
启动您的 Django EC2 实例,转到您的 settings.py 并查找以下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django_db',
'USER': 'django_login',
'PASSWORD': 'password',
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
在 'HOST': ' ' 下,将其更改为 'HOST': '无论 Postgresql 实例的私有 IP 是什么'
保存更改。打开终端并找到 manage.py 文件所在的目录。进入该目录后,运行以下命令:./manage.py syncdb
这些将为您在 Django 中创建的模型创建所有必要的表。恭喜,您已成功创建数据库实例和 Django 实例之间的链接。
如果您有任何问题,我将非常乐意提供帮助!在下面发表评论,我会尽快回复您!:)