2013-03-26 60 views
0

我有一個轉儲文件是客戶給我做一個文件在PHP Postgres數據庫連接的問題,我做這個第一恢復或轉換成file.dump pgAdmin的

  1. 重命名該文件ssdf_master.dumpssdf_master.sql在pgAdmin或Navicat中執行但不起作用。
  2. 運行此pg_restore ssdf_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的沒有pasword數據庫。

我希望我解釋過!

+0

serverfault.com可能是一個好地方,問得 – poseid 2013-03-26 09:16:59

+0

謝謝,我已經擺在那裏的地方呢! – SoldierCorp 2013-03-26 09:24:29

+0

交叉張貼在這裏:http://serverfault.com/q/491364/102814但不錯,士兵公司是告訴。 – 2013-03-26 12:02:34

回答

0

根據文件的摘錄,這是一個純文本格式的轉儲。

它不應該被傳遞到pg_restore的,因爲:

pg_restore is a utility for restoring a PostgreSQL database from an archive created by pg_dump(1) in one of the non-plain-text formats

相反當連接到一個已創建的數據庫,據推測空應當直接送入psql。該物體似乎由postgres所擁有,所以這應該這樣做:

psql -U postgres -d yourdbname < dumpfile 
+0

對不起,遲了...我想作品,但amm檢查數據庫和表已插入避免錯誤,我不明白!並運行你的行「psql -U ....」時顯示如下:錯誤:Larelacón「scg」ya existe「 – SoldierCorp 2013-03-27 22:11:40

+0

當你恢復到非空數據庫時,已經存在的對象會發生錯誤,空數據庫會發生,因爲以前的恢復是中途失敗的,你可以在導入數據庫之前刪除並重新創建數據庫 – 2013-03-28 00:29:38

+0

IN windows很難配置,在Linux中很容易,而且你的生產線工作,謝謝。 – SoldierCorp 2013-03-28 01:47:16