如何解决Ubuntu部署Graphite时django.db.utils.OperationalError数据库不存在问题
解决Graphite迁移PostgreSQL数据库时提示"database does not exist"的问题
问题原因
Django的migrate命令不会自动创建PostgreSQL数据库,必须手动提前创建对应的数据库实例。
解决步骤
- 切换到PostgreSQL超级用户并进入命令行:
sudo -u postgres psql
- 在PostgreSQL命令行中创建指定的数据库:
CREATE DATABASE "graphite.db";
注意:由于你的数据库名包含
.db后缀,需要用双引号包裹以避免PostgreSQL解析错误;更规范的做法是去掉.db后缀(比如直接命名为graphite),同时修改local_settings.py里的NAME字段为'graphite'。
- 授权graphite用户拥有该数据库的全部权限:
GRANT ALL PRIVILEGES ON DATABASE "graphite.db" TO graphite;
- 退出PostgreSQL命令行:
\q
- 重新执行迁移命令:
sudo graphite-manage migrate auth
额外检查点
- 确认PostgreSQL服务正在运行:
sudo systemctl status postgresql,如果未启动则执行sudo systemctl start postgresql并设置开机自启sudo systemctl enable postgresql。 - 验证graphite用户连接数据库是否正常:
psql -U graphite -d "graphite.db" -h 127.0.0.1 -p 5432,输入密码后能进入则说明连接正常。
内容的提问来源于stack exchange,提问作者Ashish Singhal
相关产品推荐
相关产品推荐

