PostgreSQL:将数据库导出到.sql文件

mitkmikd  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(6)|浏览(246)

我想将我的数据库导出为.sql文件。有人能帮帮我吗?我找到的解决方案不起作用。请详细描述。在Windows 7上。

v1l68za4

v1l68za41#

pg_dump默认为纯SQL导出。数据和结构。
打开command prompt并运行pg_dump -U username -h localhost databasename >> sqlfile.sql
上面的命令是首选,因为大多数时候会有一个错误,这将是类似-...FATAL: Peer authentication failed for user ...

6kkfgxo0

6kkfgxo02#

在Windows中,首先,确保路径已添加到环境变量PATH中
C:\Program Files\PostgreSQL\12\bin
成功添加路径后,重新启动cmd并键入命令
pg_dump -U username -p portnumber -d dbname -W -f location
此命令将导出模式和数据
对于仅模式,使用-s代替-W;对于仅数据,使用-a
根据您的情况替换每个变量,如username、portnumber、dbname和location**所有内容都区分大小写,请确保正确插入所有内容,**并导入
psql -h hostname -p port_number -U username -f your_file.sql databasename
确保你的数据库被创建或创建查询存在于.sql文件中

文档:https://www.postgresql.org/docs/current/app-pgdump.html

7gyucuyw

7gyucuyw3#

转到命令行并运行

pg_dump -U userName -h localhost -d databaseName > ~/Desktop/cmsdump.sql
ar7v8xwq

ar7v8xwq4#

如果您在windows open cmd上运行以下命令,请编辑用户和数据库等详细信息

pg_dump -U postgres -h localhost -d statepos > C:\Users\ston\Desktop\statepos.sql
sigwle7e

sigwle7e5#

例如,您可以将用户(角色)johnapple数据库的模式和数据导出到backup.sql,如下所示。* 如果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:

此外,您还可以将用户(角色)johnapple数据库的模式和数据导出到backup.sql,而无需密码提示,如下图所示:

PGPASSWORD=banana pg_dump -U john apple > backup.sql

并且,您可以仅将用户(角色)johnapple数据库的模式导出到backup.sql,如下所示:

pg_dump -U john -s apple > backup.sql

或者:

pg_dump -U john --schema-only apple > backup.sql

或者,您可以仅使用INSERT语句将用户(角色)johnapple数据库的特定表的数据导出到backup.sql,该语句的列名如下所示。* 在一个命令中可以使用多个表,我的答案对此做了更多的解释:

pg_dump -U john -a --column-inserts -t person -t animal apple > backup.sql

然后,您需要在运行上面的命令后输入密码:

Password:
y53ybaqx

y53ybaqx6#

例如,您可以将用户(角色)johnapple数据库的模式和数据导出并存档到backup.sql,例如:-Fc-Ft--format=c--format t,如下所示。* 如果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表示directory,输出适合输入pg_restore的目录格式存档。* pg_restore必须用于导入文件,但它不能正常工作,给出错误。
  • p表示plain,输出纯文本SQL脚本文件(默认)。* psql必须用于导入文件。
  • pg_restore用于导入使用ctd创建的归档文件,而psql用于导入使用p创建的非归档文件(默认),the doc对此进行了详细解释:

然后,您需要在运行上面的命令后输入密码:

Password:

此外,您还可以将用户(角色)johnapple数据库的模式和数据导出并存档到backup.sql,而无需密码提示,如下图所示:

PGPASSWORD=banana pg_dump -U john -Fc apple > backup.sql

并且,您可以仅将用户(角色)johnapple数据库的模式导出并存档到backup.sql,如下所示:

pg_dump -U john -s -Fc apple > backup.sql

或者:

pg_dump -U john --schema-only -Fc apple > backup.sql

或者,您可以仅导出和存档用户(角色)johnbackup.sql only INSERT语句的特定表apple数据库的数据,其列名如下所示:

pg_dump -U john -Fc -a --column-inserts -t person -t animal apple > backup.sql

然后,您需要在运行上面的命令后输入密码:

Password:

相关问题