Django Postgresql同步数据库错误

4
当我运行python manage.py syncdb时,出现以下错误:
OperationalError: could not translate host name "localhost" to address: nodename nor servname provided, or not known

我的settings.py文件看起来像这样:

if "IS_STAGING" in os.environ or "IS_PRODUCTION" in os.environ:
    import dj_database_url
    DATABASES = {'default':dj_database_url.config(default='postgres://localhost')}
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'test',                      # Or path to database file if using sqlite3.
            # The following settings are not used with sqlite3:
            'USER': 'test',
            'PASSWORD': 'test',
            'HOST': 'localhost',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
            'PORT': '',                      # Set to empty string for default.
        }
    }

你的 /etc/hosts 文件中是否定义了本地主机(localhost)? - Leonardo.Z
你尝试过只输入 127.0.0.1 或者将该行留空吗? - Mike McMahon
glasslion,localhost 在我的 etc/hosts.txt 文件中被定义为:127.0.0.1 localhost。 - vincenttian
更新!当我将Django项目中的settings.py文件从localhost更改为'127.0.0.1'时,我可以同步到数据库。 - vincenttian
我认为答案在文档注释中是正确的,它明确指出如果您想使用本地主机,则应将其留空或填写“127.0.0.1”。 - hitokiri82
显示剩余2条评论
1个回答

1
我曾多次遇到这个错误。如果您尝试连接本地数据库,则最好将主机留空:

'HOST': ''

如果这不起作用,那么以下内容应该可以:

'HOST': '127.0.0.1'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接