你好StackOverFlowers :)到现在为止我已经运行我的Django的后端,并在同一微EC2实例我的PostgreSQL数据库。
我设置了两个EC2实例,一个与我的Django的后端和与我的PostgreSQL数据库的其他实例上,我用pgadminII来管理它。 这两种情况都使用相同的安全组,并拥有所有相同的端口打开。 我已经附加了弹性IP到我的Django的实例和另一个弹性IP到我的PostgreSQL实例。
现在我知道在settings.py我需要改变“HOST”到PostgreSQL实例的地址。 但我不能肯定要放什么东西。 难道我把PostgreSQL实例的弹性IP?
我做了一些研究,许多消息来源说,我需要把在PostgreSQL实例的内部服务器的IP地址。 如果是这样的情况下,我怎么能找到的内部服务器的IP地址,并输入该到“HOST”? 我复制并粘贴下面的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.
}
感谢您的帮助,如果我不够清晰,请发表评论,让我知道,这样我可以更清楚你和他人:)
AMAZON支持
所以我结束了之后还有大卫Wolever的答复谈论亚马逊的家伙。 万一任何你遇到这个帖子试。 单独使用内部服务器的IP是不够的,但它是一个良好的开端。 如果您正在为您的PostgreSQL实例(最好是纳蒂独角鲸)运行Ubuntu,请确保您编辑的pg_hba.conf和postgresql.conf中的文件。
您通常可以找到这两个文件:/etc/postgresql/8.4/main/(pg_hba.conf或postgresql.conf中)
你要知道,我们在我们的堆栈使用PostgreSQL 8.4,它被证明是的PostgreSQL是最一致的,可靠的版本在我们的测试上纳蒂独角鲸运行。
对于不同版本的PostgreSQL的(9.1,9.0等)来,你可以找到的目录中的这两个文件都是不一样的上面列出。 确保你知道正确的目录到这些文件。
步骤1
转到亚马逊管理控制台,并确保这两种情况下是相同的安全组下。 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(在上限,以保存更改两次)
STEP 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(在上限,以保存更改两次)
STEP 4(几乎完成了hi5!)
重新启动在终端使用该命令PostgreSQL服务器:
须藤/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实例之间的联系。
如果您有任何问题,我会很乐意帮助更多! 发表评论下面,我会尽快给您尽快! :)
你并不需要为你的Postgres实例的弹性IP。 只要使用其内部的IP。 内部IP是可以从管理控制台或通过运行ifconfig
。