postgresql 在postgres中删除数据库

mbjcgjjk  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(5)|浏览(119)

我在shell中尝试dropdb mydbname。它不会给予任何错误。但是当我调用\l时,它仍然存在。
我使用sudo -u postgres psql登录到postgres服务器。
除了我主要关心的问题之外,我需要知道如何进入数据库,而不仅仅是停留在数据库之外。(作为一个例子,如果我想列出表)

cgh8pdjw

cgh8pdjw1#

为了删除数据库,您可以使用SQL命令(但我不明白为什么dropdb不起作用)DROP DATABASE mydbname

sudo -u postgres psql -c "DROP DATABASE mydbname"

字符串
最好检查数据库是否未被使用:

select * from pg_stat_activity where datname = 'mydbname';


sudo -u postgres psql连接到posterre数据库。您需要指定数据库:sudo -u postgres psql mydbname,然后可以使用元数据命令,如\d、\dt、\dv...

ylamdve6

ylamdve62#

你说的“壳”...你的意思是psql shell,而不是unix命令行shell?
我会说你遇到了这个问题
Postgresql not creating db with “createdb” as superuser, yet not outputting errors
也就是说,你试图使用dropdb作为一个psql命令,当它是一个unix shell命令。你不会得到一个错误,因为:
In psql, why do some commands have no effect?
您没有用分号终止命令。

rkue9o1l

rkue9o1l3#

你是不是漏掉了逗号(;)?此命令对我有效:

drop database <database_name>;

字符串

mf98qq94

mf98qq944#

服务器应该正在运行,则:

dropdb <database name>

字符串
如果服务器未运行,请首先尝试:

pg_ctl start -D <mylocal_db_path> -l <mylogfile.log>

ax6ht2ek

ax6ht2ek5#

dropdb -h <ip> -p 5432 -U postgres --if-exists --echo <dbname>

字符串

相关问题