我有一个转储文件的问题,客户端给我做一个文件与php中的postgres数据库连接,我先这样做
- 将此文件重命名为ssdf_master。dump to ssdf_master. dumpsql在pgAdmin或Navicat中执行,但不工作。
- 运行这个pg_restore ssdf_master。dump并要求输入密码并键入密码,我保存在pgAdmin中,但不是。
。dump有N和。当在navicat中运行该文件时,显示这个错误:
[Err] ERROR: error de sintaxis en o cerca de «01»
LINE 784: 01 Aguascalientes AGS 00000 99999 N
解压文件
--
-- PostgreSQL database dump
--
SET statement_timeout = 0;
SET client_encoding = 'LATIN1';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;
--
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
--
CREATE PROCEDURAL LANGUAGE plpgsql;
ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres;
SET search_path = public, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--
-- Name: scg; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
--
CREATE TABLE scg (
base_datos character varying(8),
ip character varying(15),
tipo character(1),
owner character varying(8),
own_passwd character varying(8)
);
ALTER TABLE public.scg OWNER TO postgres;
--
-- Data for Name: scg; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY scg (base_datos, ip, tipo, owner, own_passwd) FROM stdin;
SCGDGCA 10.18.20.150 E postgres postgres
SCGSJ 10.18.20.150 E postgres postgres
SCGDPRE 10.18.20.150 E postgres postgres
SCGDSSA 10.18.20.150 E postgres postgres
SCGDAFI 10.18.20.150 E postgres postgres
SCGSDA 10.18.20.150 E postgres postgres
SCGDPRED 10.18.20.150 E postgres postgres
.
注意:之前,我创建了一个名为postgres的数据库,用户postgres没有密码。
希望我已经解释清楚了!
根据文件的提取,这是一个纯文本格式的转储。
不应该传递给pg_restore,因为:
pg_restore是一个用于从数据库中恢复PostgreSQL数据库的实用程序由pg_dump(1)以一种非纯文本格式创建的存档
应该在连接到已经创建的数据库时直接提供给psql
,假设为空。这些对象似乎属于postgres
,所以应该这样做:
psql -U postgres -d yourdbname < dumpfile