0

クライアントがphpでpostgresデータベースに接続するためのファイルを作成するために私に与えるダンプファイルに問題があり、最初にこれを行います

  1. このファイルの名前をssdf_master.dumpからssdf_master.sqlに変更して、pgAdminまたはNavicatで実行しますが、機能しません。
  2. このpg_restoressdf_master.dumpを実行し、パスワードを要求し、 pgAdminに保存しているが保存していないパスワードを入力します。

私のssdf_master.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というデータベースを作成しました。

説明したと思います!

4

1 に答える 1

1

ファイルの抜粋によると、これはプレーンテキスト形式のダンプです。

次の理由により、pg_restoreに渡さないでください。

pg_restoreは、pg_dump(1)によって作成されたアーカイブからプレーンテキスト以外の形式の1つでPostgreSQLデータベースを復元するためのユーティリティです。

psqlむしろ、すでに作成されたデータベース(おそらく空)に接続するときに直接フィードする必要があります。オブジェクトはによって所有されているように見えるpostgresので、これは次のようになります。

psql -U postgres -d yourdbname < dumpfile
于 2013-03-26T19:24:33.243 に答える