我想将我的数据库导出为一个
.sql
文件。
有人可以帮我吗?我找到的解决方案都不起作用。
请提供详细的说明。
在Windows 7上。.sql
文件。
有人可以帮我吗?我找到的解决方案都不起作用。
请提供详细的说明。
在Windows 7上。pg_dump -U用户名 -h localhost -p 5433 dbName >> dumpFile.sql
使用上述命令将在您的“home”文件夹中创建文件,但您可以指定所需的位置。 - Wachaga MwauraC:\Program Files\PostgreSQL\12\bin
。成功添加路径后,重新启动cmd并输入以下命令:pg_dump -U 用户名 -p 端口号 -d 数据库名 -W -f 文件位置
。此命令可以导出模式和数据。如果只需要导出模式,请使用-s
替代-W
;如果只需要导出数据,请使用-a
。请根据您的情况替换每个变量,例如用户名、端口号、数据库名和文件位置。所有内容均区分大小写,请确保正确输入。如需导入,请使用以下命令: psql -h 主机名 -p 端口号 -U 用户名 -f 您的文件.sql 数据库名
。请确保数据库已创建或者在.sql文件中存在创建查询语句。有关详细信息,请参考文档:https://www.postgresql.org/docs/current/app-pgdump.html。打开命令行并运行
pg_dump -U userName -h localhost -d databaseName > ~/Desktop/cmsdump.sql
pg_dump -U postgres -h localhost -d statepos > C:\Users\ston\Desktop\statepos.sql
-Fc
,-Ft
,--format=c
和--format t
将用户(角色)john
的apple
数据库的模式和数据导出并存档到backup.sql
中,如下所示。如果backup.sql
不存在,则会创建它,我的答案解释了如何导出模式和数据,我的答案解释了如何导入存档backup.sql
到orange
数据库,文档解释了如何导出和导入数据库。pg_dump -U john -Fc apple > backup.sql
或者:
pg_dump -U john -Ft -d apple > backup.sql
或者:
pg_dump --username=john --format=c --dbname=apple > backup.sql
或者:
pg_dump --username john --format t --dbname apple > backup.sql
c
表示自定义,它输出一个适用于pg_restore
导入的自定义格式存档文件。*必须使用pg_restore
来导入该文件。
t
表示tar,它输出一个适用于pg_restore
导入的tar格式存档文件。*必须使用pg_restore
来导入该文件。
d
表示目录,它输出一个适用于pg_restore
导入的目录格式存档文件。*必须使用pg_restore
来导入该文件,但是它无法正常工作,会出现错误。
p
表示纯文本,它输出一个纯文本SQL脚本文件(默认格式)。*必须使用psql
来导入该文件。
*pg_restore
是用于导入使用 c
、t
和 d
创建的归档文件,而 psql
是用于导入使用 p
(默认)创建的非归档文件,文档中有更详细的解释:
然后,在运行上述命令后,您需要输入密码:
Password:
banana
)设置为PGPASSWORD,将用户(角色)john
的apple
数据库的模式和数据导出并存档到backup.sql
,而无需输入密码。具体操作如下所示:PGPASSWORD=banana pg_dump -U john -Fc apple > backup.sql
john
的apple
数据库的模式导出并存档到backup.sql
文件中:pg_dump -U john -s -Fc apple > backup.sql
或者:
pg_dump -U john --schema-only -Fc apple > backup.sql
apple
数据库中用户(角色)john
的数据到 backup.sql
,仅包含以下所示的列名的 INSERT
语句。pg_dump -U john -Fc -a --column-inserts -t person -t animal apple > backup.sql
Password:
john
的apple
数据库的模式和数据导出到backup.sql
。如果backup.sql
不存在,它将被创建,您还可以使用-Fp
(在我的回答中有解释)来导出和归档数据库,-Fc
和-Ft
(在我的回答中有解释)来导出和导入所有数据库,以及我的回答中有解释如何将backup.sql
导入到orange
数据库,文档中有解释如何导出和导入数据库。pg_dump -U john apple > backup.sql
或者:
pg_dump -U john -d apple > backup.sql
或者:
pg_dump --username=john --dbname=apple > backup.sql
或者:
pg_dump --username john --dbname apple > backup.sql
或者:
pg_dump -U john -f backup.sql apple
或者:
pg_dump -U john -d apple -f backup.sql
或者:
pg_dump --username=john --file=backup.sql apple
或者:
pg_dump --username john --file backup.sql apple
或者:
pg_dump --username=john --dbname=apple --file=backup.sql
或者:
pg_dump --username john --dbname apple --file backup.sql
Password:
banana
)设置为PGPASSWORD,将用户(角色)john
的apple
数据库的模式和数据导出到backup.sql
,而无需密码提示,如下所示:PGPASSWORD=banana pg_dump -U john apple > backup.sql
john
的apple
数据库模式导出到backup.sql
文件中,使用-s
或--schema-only
选项:pg_dump -U john -s apple > backup.sql
或者:
pg_dump -U john --schema-only apple > backup.sql
john
的apple
数据库中特定表person
和animal
的数据到backup.sql
,只包含以下所示的INSERT
语句的列名。*在一个命令中可以指定多个表,我的答案解释了如何仅导出数据。pg_dump -U john -a --column-inserts -t person -t animal apple > backup.sql
Password: