在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
恢复postgres备份文件取决于最初是如何进行备份的。
如果你使用pg_dump和-F c或-F d,你需要使用pg_restore,否则你可以使用
psql -h localhost -p 5432 -U postgres <备份文件
9种备份和恢复postgres数据库的方法
其他回答
试试这个:
psql -U <username> -d <dbname> -f <filename>.sql
从。sql文件恢复数据库psql
我在运行pg_dump时遇到身份验证问题,所以我移动了转储文件
mv database_dump /tmp
进入临时目录,然后运行
su -u postgres
cd /tmp
pg_restore database_dump
如果您有一个大型数据库转储,您可能只想创建另一个目录,当前用户和postgres用户可以访问该目录,并将数据库转储文件放入该目录。
如果你正在使用docker,这个答案可能会有帮助。
启动容器 Docker start <postgres_container_id> .使用实例 访问容器内的bash Docker exec -it <postgres_container_id> bash 将.tar备份文件复制到docker容器(在另一个窗口中) Docker cp postgres_dump.tar <postgres_container_id>:/ 恢复备份 pg_restore -c -U < postgres_user > -d <password> -v "postgres_dump.tar 输入密码
遵循以下3个步骤:
启动postgresql server - sudo systemctl Start postgresql 启用same - sudo systemctl Enable postgresql restore命令- pg_restore -h localhost -p 5432 - u postgres -d old_db . sh
假设转储文件在同一目录中
链接:
https://www.postgresqltutorial.com/postgresql-restore-database https://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432
没有密码提示的最短路径
psql "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"
如果您使用Windows操作系统
psql.exe "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"