我在shell中尝试dropdb mydbname。它不会给予任何错误。但是当我调用\l时,它仍然存在。我使用sudo -u postgres psql登录到postgres服务器。除了我主要关心的问题之外,我需要知道如何进入数据库,而不仅仅是停留在数据库之外。(作为一个例子,如果我想列出表)
dropdb mydbname
\l
sudo -u postgres psql
cgh8pdjw1#
为了删除数据库,您可以使用SQL命令(但我不明白为什么dropdb不起作用)DROP DATABASE mydbname:
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...
sudo -u postgres psql mydbname
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?的您没有用分号终止命令。
psql
dropdb
rkue9o1l3#
你是不是漏掉了逗号(;)?此命令对我有效:
drop database <database_name>;
字符串
mf98qq944#
服务器应该正在运行,则:
dropdb <database name>
字符串如果服务器未运行,请首先尝试:
pg_ctl start -D <mylocal_db_path> -l <mylogfile.log>
型
ax6ht2ek5#
dropdb -h <ip> -p 5432 -U postgres --if-exists --echo <dbname>
5条答案
按热度按时间cgh8pdjw1#
为了删除数据库,您可以使用SQL命令(但我不明白为什么dropdb不起作用)
DROP DATABASE mydbname
:字符串
最好检查数据库是否未被使用:
型
sudo -u postgres psql
连接到posterre数据库。您需要指定数据库:sudo -u postgres psql mydbname
,然后可以使用元数据命令,如\d、\dt、\dv...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?的
您没有用分号终止命令。
rkue9o1l3#
你是不是漏掉了逗号(;)?此命令对我有效:
字符串
mf98qq944#
服务器应该正在运行,则:
字符串
如果服务器未运行,请首先尝试:
型
ax6ht2ek5#
字符串