方法一 在psql中運行
在終端進入用戶test下的數(shù)據(jù)庫testdb:
1
|
$ psql -p 5432 -U test -d testdb |
假設(shè)要執(zhí)行的.sql文件叫做d1.sql,存放路徑為:/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql,導(dǎo)出的文件叫做d1.out,存放的路徑為:/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/out/d1.out
1
2
3
|
testdb=# \o /mnt/hgfs/share/ database /2.18.0_rc2/dbgen/queries/ out /d1. out testdb=# \i /mnt/hgfs/share/ database /2.18.0_rc2/dbgen/queries/d1.sql testdb=# \o |
\o file1
表示接下來的內(nèi)容輸出到文件file1
\i file2
表示導(dǎo)入文件file2
\o
表示結(jié)束輸出到文件file1
方法二 在終端運行
1
|
$ psql -p 5432 -U test -d testdb -f /mnt/hgfs/share/ database /2.18.0_rc2/dbgen/queries/d1.sql > /mnt/hgfs/share/ database /2.18.0_rc2/dbgen/queries/ out /d1. out |
補充:postgresql windows自動導(dǎo)出sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
@ECHO OFF @setlocal enableextensions @cd /d "%~dp0" set PGPASSWORD= "D:/sql_bak/pws.vbs" SET PGPATH= "D:/Program Files/PostgreSQL/10/bin/pg_dump" SET SVPATH=D:/sql_bak/ SET PRJDB=fame SET DBUSR=postgres FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ( 'DATE /T' ) DO SET d=%%i-%%j-%%k FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ( 'TIME /T' ) DO SET t=%%i%%j%%k SET DBDUMP=%PRJDB%_%d%_%t%.sql %PGPATH% -h 127.0.0.1 -p 5432 -U %DBUSR% %PRJDB% > %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP% |
將以上文件保存為 bat格式。
PGPATH
:postgresqsl 安裝目錄
SVPATH
:備份路徑
PRJDB
:數(shù)據(jù)庫名字
DBUSR
:用戶名
數(shù)據(jù)庫修改配置文件:pg_hba.conf
設(shè)了對本地要密碼md5認(rèn)證。
1
2
3
|
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 |
改成這樣,本地備份就不用輸入密碼了(改后要重啟服務(wù))
1
2
3
|
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 trust |
cmd 然后進入postgresql的bin目錄
執(zhí)行
1
|
psql -h localhost -U username -d database < d:/data.bak |
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。如有錯誤或未考慮完全的地方,望不吝賜教。
原文鏈接:https://blog.csdn.net/iteapoy/article/details/88392325