【发布时间】:2022-01-06 21:17:33
【问题描述】:
我有一个 Django 项目,我正在尝试在 Ubuntu 上设置并在 PostgreSQL 14 中创建一个新数据库。
默认的root用户和往常一样是Postgres。
然后我尝试使用我的 Linux 用户名“abc”创建一个具有所有权限的新用户:“SUPERUSER”、“CREATEDB”等。一切正常并创建了一个新用户。
有人建议我创建一个同名“abc”的数据库。
所以,我在 psql shell 中做了
CREATE DATABASE abc;,它没有给出任何错误,也没有任何结果。
我在 bash 终端中尝试了
createdb abc或creatdb,但这也没有任何作用。
这个 SO 答案 link 的解决方案对我根本不起作用。
我也试过this,但没有做任何事情。
我最终只是希望能够为我的 Django 项目创建数据库,但我无法做到,而且我现在不知道自己做错了什么。
这是我用来设置 Django 项目数据库的命令:
# create new user who will be the db owner
# on Ubuntu, root user is postgres
createuser -P <new_user_name> -U <root_user>
# if you're having issues logging in
# see https://stackoverflow.com/a/18664239/3187043
# create new db with the above created user as its owner
createdb -E UTF8 --lc-collate=en_IN.UTF-8 --lc-ctype=en_IN.UTF-8 -T template0 -O <new_user_name> -U <root_user> <new_db_name>
# this doesn't get created
# copy the contents to your new db
psql -U <new_user_name> <new_db_name> < ~/Downloads/backup-ocrdb-2018-09-13_1214.psql
#fails with no output
# Log in to psql console using
psql -U <new_user_name> <new_db_name>
#unable to login because db has not been created
正如@Laurenz Albe 所建议的
这是运行的输出:SELECT * FROM pg_locks;
【问题讨论】:
-
一定是错字。
-
我已经做了很多时间了,我不认为这是由于错字。
-
可能是 Windows 的问题,因为我是在 WSL2 中做的。
-
如果它挂起并且没有完成,这听起来像一个锁。查看 PostgreSQL 日志以获取有趣的消息。当
CREATE DATABASE挂起时,在第二个数据库会话中运行SELECT * FROM pg_locks;并将结果添加到问题中。 -
你试过我推荐的吗?
标签: python django database postgresql ubuntu