『壹』 如何查看postgresql版本是客戶端
版本: psql --version卸載: 不知道你怎麼安裝的?我只在ubuntu上安裝過。添加好源以後,不論安裝和卸載都調用apt就可以完成。
『貳』 怎麼postgresql和本機建立聯系
PostgreSQL 是用一個簡單的"每用戶一進程"的 client/server 模型實現的。在這種模式里一個客戶端進程只與恰好一個伺服器進程連接。因為不知道具體要建立多少個連接,所以不得不利用一個主進程在每次連接請求時派生出一個新的伺服器進程來。這個主進程叫做postgres,它監聽著一個特定的 TCP/IP 埠等待進來的連接。每當檢測到一個連接請求時,postgres進程派生出一個新的伺服器進程。伺服器進程之間使用信號燈和共享內存進行通訊,以確保在並發的數據訪問過程中的數據完整性。
客戶端進程可以是任何理解 PostgreSQL 協議(在 章44里描述)的程序。許多客戶端都是基於 C 語言庫 libpq 的程序,但是也存在幾個對協議之獨立的實現,比如 Java JDBC 驅動。
一旦建立起來連接,客戶端進程就可以向後端(伺服器)進程發送查詢了。查詢是通過純文本傳輸的,也就是說在前端(客戶端)不做任何分析處理。伺服器分析查詢,創建執行規劃,執行該規劃並且通過已經建立起來的連接把檢索出來的數據行返回給客戶端。
『叄』 安裝postgre sql時跳出langid怎麼解決
安裝postgre sql時跳出langid解決方法:
一、安裝
首先,安裝PostgreSQL客戶端。
sudo apt-get install postgresql-client
然後,安裝PostgreSQL伺服器。
sudo apt-get install postgresql
正常情況下,安裝完成後,PostgreSQL伺服器會自動在本機的5432埠開啟。
如果還想安裝圖形管理界面,可以運行下面命令,但是本文不涉及這方面內容。
sudo apt-get install pgadmin3
二、添加新用戶和新資料庫
初次安裝後,默認生成一個名為postgres的資料庫和一個名為postgres的資料庫用戶。這里需要注意的是,同時還生成了一個名為postgres的Linux系統用戶。
下面,我們使用postgres用戶,來生成其他用戶和新資料庫。好幾種方法可以達到這個目的,這里介紹兩種。
第一種方法,使用PostgreSQL控制台。
首先,新建一個Linux新用戶,可以取你想要的名字,這里為dbuser。
sudo adser dbuser
然後,切換到postgres用戶。
sudo su - postgres
下一步,使用psql命令登錄PostgreSQL控制台。
psql
這時相當於系統用戶postgres以同名資料庫用戶的身份,登錄資料庫,這是不用輸入密碼的。如果一切正常,系統提示符會變為"postgres=#",表示這時已經進入了資料庫控制台。以下的命令都在控制台內完成。
第一件事是使用\password命令,為postgres用戶設置一個密碼。
\password postgres
第二件事是創建資料庫用戶dbuser(剛才創建的是Linux系統用戶),並設置密碼。
CREATE USER dbuser WITH PASSWORD 'password';
第三件事是創建用戶資料庫,這里為exampledb,並指定所有者為dbuser。
CREATE DATABASE exampledb OWNER dbuser;
第四件事是將exampledb資料庫的所有許可權都賦予dbuser,否則dbuser只能登錄控制台,沒有任何資料庫操作許可權。
GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
最後,使用\q命令退出控制台(也可以直接按ctrl+D)。
\q
第二種方法,使用shell命令行。
添加新用戶和新資料庫,除了在PostgreSQL控制台內,還可以在shell命令行下完成。這是因為PostgreSQL提供了命令行程序createuser和createdb。還是以新建用戶dbuser和資料庫exampledb為例。
首先,創建資料庫用戶dbuser,並指定其為超級用戶。
sudo -u postgres createuser --superuser dbuser
然後,登錄資料庫控制台,設置dbuser用戶的密碼,完成後退出控制台。
sudo -u postgres psql
\password dbuser
\q
接著,在shell命令行下,創建資料庫exampledb,並指定所有者為dbuser。
sudo -u postgres createdb -O dbuser exampledb
三、登錄資料庫
添加新用戶和新資料庫以後,就要以新用戶的名義登錄資料庫,這時使用的是psql命令。
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
上面命令的參數含義如下:-U指定用戶,-d指定資料庫,-h指定伺服器,-p指定埠。
輸入上面命令以後,系統會提示輸入dbuser用戶的密碼。輸入正確,就可以登錄控制台了。
psql命令存在簡寫形式。如果當前Linux系統用戶,同時也是PostgreSQL用戶,則可以省略用戶名(-U參數的部分)。舉例來說,我的Linux系統用戶名為ruanyf,且PostgreSQL資料庫存在同名用戶,則我以ruanyf身份登錄Linux系統後,可以直接使用下面的命令登錄資料庫,且不需要密碼。
psql exampledb
此時,如果PostgreSQL內部還存在與當前系統用戶同名的資料庫,則連資料庫名都可以省略。比如,假定存在一個叫做ruanyf的資料庫,則直接鍵入psql就可以登錄該資料庫。
psql
另外,如果要恢復外部數據,可以使用下面的命令。
psql exampledb < exampledb.sql
四、控制台命令
除了前面已經用到的\password命令(設置密碼)和\q命令(退出)以外,控制台還提供一系列其他命令。
\h:查看SQL命令的解釋,比如\h select。
\?:查看psql命令列表。
\l:列出所有資料庫。
\c [database_name]:連接其他資料庫。
\d:列出當前資料庫的所有表格。
\d [table_name]:列出某一張表格的結構。
\:列出所有用戶。
\e:打開文本編輯器。
\conninfo:列出當前資料庫和連接的信息。
五、資料庫操作
基本的資料庫操作,就是使用一般的SQL語言。
# 創建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入數據
INSERT INTO user_tbl(name, signup_date) VALUES('張三', '2013-12-22');
# 選擇記錄
SELECT * FROM user_tbl;
# 更新數據
UPDATE user_tbl set name = '李四' WHERE name = '張三';
# 刪除記錄
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加欄位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新結構
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名欄位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 刪除欄位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 刪除表格
DROP TABLE IF EXISTS backup_tbl;
『肆』 postgresql 和postgis區別是什麼
了存儲、查詢和修改空間關系的能力。本文中 『PostgreSQL』 指代基本的關系資料庫功能,而 『PostGIS』 指代擴展的空間操作特性。
客戶端-伺服器構架
PostgreSQL 同眾多資料庫產品一樣,採用客戶端-伺服器構架。客戶端向伺服器發出請求並得到響應。這種機制同瀏覽器從網路伺服器獲取網頁類似。在 PostgreSQL 中,請求以 SQL 語言發出,而響應多為從資料庫提取的表單。
客戶端與伺服器可以部署在同一台設備上,即 PostgreSQL 可以在單一的計算機上使用。藉由系統內部的 『loopback』 通信機制,資料庫系統可以進行私密通訊。除非專門配置,外界是不能訪問這些信息的。
本位介紹三種客戶端:命令行, Quantum GIS , pgAdmin 圖形化資料庫客戶端。
創造具有空間信息處理能力的資料庫
命令行客戶端在終端模擬器(Terminal Emulator)中運行。在 Applications 菜單的 Accessories 中打開一個終端模擬器,將顯示一個 Unix 風格的命令行界面。輸入:
psql -V
回車確認,將顯示 PostgreSQL 版本號。
一個 PostgreSQL 伺服器中,可以將不同的任務組織到不同的資料庫。每個資料庫獨立運作,擁有專門的表單、顯示、用戶等。訪問 PostgreSQL 資料庫時將指定一個資料庫。
伺服器上資料庫列表通過以下命令查詢:
psql -l
輸出將羅列 Live 上配置的幾個資料庫。這里演示新建一個。
PostgreSQL 使用 createdb 工具創建資料庫。這里建立的資料庫應帶有 PostGIS 的擴展功能,因此需要指定相應的模板。這里將新建資料庫稱為 demo 。命令為:
createdb-Ttemplate_postgisdemo
現在執行 psql-l 應當可以看到 demo 資料庫。
也可以使用 SQL 語言創建 PostGIS 資料庫。首先使用 dropdb 命令刪除之前創建的資料庫,然後使用 psql 命令開啟 SQL 命令解析器:
dropdbdemopsql-dpostgres
這樣就連接到了一個通用的系統資料庫 postgres 。輸入 SQL 命令建立新資料庫:
postgres=# CREATE DATABASE demo TEMPLATE=template_postgis;
現在可以轉換連接到新建的資料庫。若重新連接時可以使用 psql-ddemo 命令。但在 psql 系統內部也可以使用以下命令:
postgres=# c demo
一個信息頁面將顯示當前已連接 demo 資料庫。輸入 dt 列出當前資料庫內的表單,輸出如下:
demo=# dtListofrelationsSchema|Name|Type|Owner--------+------------------+-------+-------public|geometry_columns|table|userpublic|spatial_ref_sys|table|user(2rows)
這兩個表格是 PostGIS 默認的。其中 spatial_ref_sys 存儲著合法的空間坐標系統。利用 SQL 查詢查看:
demo=# SELECT srid,auth_name,proj4text FROM spatial_ref_sys LIMIT 10;srid|auth_name|proj4text------+-----------+--------------------------------------3819|EPSG|+proj=longlat+ellps=bessel+towgs...3821|EPSG|+proj=longlat+ellps=aust_SA+no_d...3824|EPSG|+proj=longlat+ellps=GRS80+towgs8...3889|EPSG|+proj=longlat+ellps=GRS80+towgs8...3906|EPSG|+proj=longlat+ellps=bessel+no_de...4001|EPSG|+proj=longlat+ellps=airy+no_defs...4002|EPSG|+proj=longlat+a=6377340.189+b=63...4003|EPSG|+proj=longlat+ellps=aust_SA+no_d...4004|EPSG|+proj=longlat+ellps=bessel+no_de...4005|EPSG|+proj=longlat+a=6377492.018+b=63...(10rows)
以上顯示確認了該資料庫已經建立空間操作功能。資料庫中的 geometry_columns 用於記錄那些表格是有空間信息的。
手工建立空間數據表格
空間資料庫已經建立,現在可以建立具有空間信息的表格。
首先建立一個常規的表格存儲有關城市(cities)的信息。這個表格有兩欄,一個是 ID 編號,一個是城市名:
demo=# CREATE TABLE cities ( id int4, name varchar(50) );
現在添加一個空間欄用於存儲城市的位置。習慣上這個欄目叫做 the_geom 。它記錄了數據為什麼類型(點、線、面)、有幾維(這里是二維)以及空間坐標系統。此處使用 EPSG:4326 坐標系統:
demo=# SELECT AddGeometryColumn ('cities', 'the_geom', 4326, 'POINT', 2);
完成後,查詢 cities 表單應當顯示這個新欄目。同時頁面將顯示當前表達沒有記錄(0 rows)。
demo=# SELECT * from cities;id|name|the_geom----+------+----------(0rows)
為添加記錄,需要使用 SQL 命令。對於空間欄,使用 PostGIS 的 ST_GeomFromText 可以將文本轉化為坐標與參考系號的記錄:
demo=# INSERT INTO cities (id, the_geom, name) VALUES (1,ST_GeomFromText('POINT(-0.1257 51.508)',4326),'London, England');demo=# INSERT INTO cities (id, the_geom, name) VALUES (2,ST_GeomFromText('POINT(-81.233 42.983)',4326),'London, Ontario');demo=# INSERT INTO cities (id, the_geom, name) VALUES (3,ST_GeomFromText('POINT(27.91162491 -33.01529)',4326),'East London,SA');
當然,這樣的輸入方式難以操作。其它方式可以更快的輸入數據。就目前來說,表格內已經有了一些城市數據,可以先進行查詢等操作。
簡單查詢
標準的 SQL 操作都可以用於 PostGIS 表單:
demo=# SELECT * FROM cities;id|name|the_geom----+-----------------+----------------------------------------------------1|London,England||London,Ontario||EastLondon,SA|(3rows)
這里的坐標是無法閱讀的 16 進制格式。要以 WKT 文本顯示,使用 ST_AsText(the_geom) 或 ST_AsEwkt(the_geom) 函數。也可以使用 ST_X(the_geom) 和 ST_Y(the_geom) 顯示一個維度的坐標:
demo=# SELECT id, ST_AsText(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(the_geom) FROM cities;id|st_astext|st_asewkt|st_x|st_y----+------------------------------+----------------------------------------+-------------+-----------1|POINT(-0.125751.508)|SRID=4326;POINT(-0.125751.508)|-0.1257|51.5082|POINT(-81.23342.983)|SRID=4326;POINT(-81.23342.983)|-81.233|42.9833|POINT(27.91162491-33.01529)|SRID=4326;POINT(27.91162491-33.01529)|27.91162491|-33.01529(3rows)
空間查詢:
PostGIS 為 PostgreSQL 擴展了許多空間操作功能。以上已經涉及了轉換空間坐標格式的 ST_GeomFromText 。多數空間操作以 ST(spatial type)開頭,在 PostGIS 文檔相應章節有羅列。這里回答一個具體的問題:以米為單位並假設地球是完美橢球,上面三個城市相互的距離是多少?
demo=# SELECT p1.name,p2.name,ST_Distance_Sphere(p1.the_geom,p2.the_geom) FROM cities AS p1, cities AS p2 WHERE p1.id > p2.id;name|name|st_distance_sphere-----------------+-----------------+--------------------London,Ontario|London,England|5875766.85191657EastLondon,SA|London,England|9789646.96784908EastLondon,SA|London,Ontario|13892160.9525778(3rows)
輸出顯示了距離數據。注意 『WHERE』 部分防止了輸出城市到自身的距離(0)或者兩個城市不同排列的距離數據(London, England 到 London, Ontario 和 London, Ontario 到 London, England 的距離是一樣的)。嘗試取消 『WHERE』 並查看結果。
這里採取不同的橢球參數(橢球體名、半主軸長、扁率)計算:
demo=# SELECT p1.name,p2.name,ST_Distance_Spheroid(p1.the_geom,p2.the_geom,'SPHEROID["GRS_1980",6378137,298.257222]')FROMcitiesASp1,citiesASp2WHEREp1.id>p2.id;name|name|st_distance_spheroid-----------------+-----------------+----------------------London,Ontario|London,England|5892413.63776489EastLondon,SA|London,England|9756842.65711931EastLondon,SA|London,Ontario|13884149.4140698(3rows)
制圖
以 PostGIS 數據制圖需要相應的客戶端支持。包括 Quantum GIS、gvSIG、uDig 在內的多種客戶端均可以。以下使用 Quantum GIS:
從 Desktop GIS 菜單啟動 Quantum GIS 並在其 layer 菜單選擇 AddPostGISlayers 。連接到 Natural Earth PostGIS 資料庫的參數在 Connections 下拉菜單中有。這里可以定義和儲存其它的配置。點擊 Edit 可以查看具體參數。點擊 Connect 連接:
系統將顯示所有空間信息表供選擇:
選擇 lakes 湖泊表單並點擊底部的 Add 添加。頂部的 Load 可以載入新的資料庫連接配置。數據將被導入:
界面上顯示出湖泊的分布。QGIS 並不理解湖泊一詞的含義,也許不會自動使用藍色。請查看其手冊了解如何設置。這里縮放到加拿大一處著名的湖泊群。
自動創建空間數據表單
OSGeo Live 的多數桌面 GIS 系統都可以將 shp 等文件導入資料庫。這里依然使用 QGIS 演示。
QGIS 中導入 shp 可以使用 PostGIS Manager 插件。在 Plugins 菜單選擇 FetchPlugins 導入最新的官方插件列表(需要網路連接)。找到 PostGISManager 點擊 Installplugin 安裝。
完成後,在 Plugin 菜單點擊 PostGIS Manager 啟動。也可以點擊工具欄上大象與地球的圖標。
該插件將連接 Natural Earth 資料庫。若提示輸入密碼,留空即可。在開啟的界面中,選擇表單可以顯示相應的信息。預覽(Preview)選項卡可以顯示地圖預覽。這里選擇了 populated places 圖層並縮放到一個小島:
接下來使用 PostGIS Manager 將 shp 導入資料庫。這里使用 R 統計擴展包含的 North Carolina sudden infant death syndrome (SIDS) 數據:
在 Data 菜單選擇 Loaddatafromshapefile 選項。點擊 ... 選中 R maptools 中的 sids.shp 。
『伍』 postgresql連接工具有哪些
以下是postgresql資料庫管理工具,需要的小夥伴可以學習一下
1、navicat是類似於MySQL workbench的SQL客戶端,可以支持PostgreSQL,需要購買,但是有試用版。
2、pgAdmin
3、DBVisualizer
4、也可以支持用自帶的psql client
推薦學習《python教程》。
『陸』 POSTGRESQL的連接的埠號是多少
PostgreSQL默認埠號為5432,具體查看埠號的操作步驟如下:
1、首先我們點擊桌面上的「開始」圖標。
『柒』 ubuntu下安裝 postgresql 的命令
你的安裝命令不完整,少了一個 install ,
如果是安裝PostgreSQL客戶端:sudo apt-get install postgresql-client
如果是安裝PostgreSQL伺服器:sudo apt-get install postgresql
正常情況下,安裝完成後,PostgreSQL伺服器會自動在本機的5432埠開啟。
如果還想安裝圖形管理界面,可以運行這個命令:sudo apt-get install pgadmin3
更多關於PostgreSQL的用法,樓主可以網路《Linux就該這么學》,搜索關鍵字可以獲得相應的教程。
『捌』 怎麼在windows上連接postgres
1、windows下postgresql的安裝
我下載的為xxx9.2.exe一路默認安裝即可。安裝位置為C:\Program Files\PostgreSQL。
安裝完畢後,在dos下執行命令
>net user
列出當前系統用戶名稱。我的用戶名為Administrator。
>psql –U Administrator –d postgres
該命令表示通過資料庫用戶Administrator連接資料庫postgres。
l 若顯示psql不是內部或外部命令,則說明postgresql的bin文件路徑沒添加到windows系統中,右擊「我的電腦」->」屬性」->」高級」->」環境變數」->」Administrator」的用戶變數,選中「PATH」,點擊編輯,將」C:\Program Files\PostgreSQL\9.2\bin」添加進去,注意與前面的路徑用」;」隔開。電腦重啟生效。
l 若顯示角色Administrator不存在,則必須在postgresql資料庫中添加該用戶才能使其可以登錄。
在postgresql中
查詢系統用戶
postgres=#select* from pg_user;
查詢系統中的資料庫
postgres=#select* from pg_database;
說明一下:「template1」是Postgresql在初始化時自動創建的測試資料庫。
創建postgresql資料庫Administrator用戶
方式1
在PostgreSQL中創建用戶postgreSQL用戶Administrator
用SQL Shell(psql)通過用戶postgres登錄PostgreSQL,創建用戶Administrator,
postgres=#create user 「Administrator」;
方式2
通過windows下dos創建postgresql用戶Administrator
將PostgreSQL文件夾bin路徑添加到系統環境中後重啟生效.
通過windows下dos創建postgresql用戶是區分大小寫的。
配置客戶機訪問
為了配置遠程主機和用戶可以連接到PostgreSQL服務,你需要pg_hba.conf文件。文件包含大量注釋記錄用於遠程訪問的選項。在我們的安裝示例中,我們允許區域網中任何主機的任何用戶訪問伺服器上的資料庫。為了達到這個目的,我們添加以下的一行記錄到文件尾:
host all all 192.168.0.0/16 trust
這意味著所有IP地址由192.168開始的計算機可以訪問所有的資料庫。最簡單的使配置生效的方法就是重啟伺服器。
在dos下操作,通過createuser –Uolser –P newuser來創建。
比如我們想創建postgresql資料庫用戶Administrator。
>createuser –U postgre –P Administrator
這樣創建的資料庫用戶Administrator沒有創建資料庫的權利,可以通過pgAdmin III登錄進行查看。
若使其可以創建資料庫可以參照下面內容進行設置:
>createuser –U postgre –s Administrator
這樣具有創建資料庫能力。
createuser的用法可以通過在dos中輸入createuser –help查看。
MicrosoftWindows XP [版本 5.1.2600]
(C)版權所有 1985-2001 Microsoft Corp.
C:\Documentsand Settings\Administrator>createuser --help
createuser創建一個新的 PostgreSQL 用戶.
使用方法:
createuser [選項]... [用戶名]
選項:
-c, --connection-limit=N 角色的連接限制(預設: 沒有限制)
-d, --createdb 此角色可以創建新資料庫
-D, --no-createdb 此角色不可以創建新資料庫(默認)
-e, --echo 顯示發送到服務端的命令
-E, --encrypted 口令加密存儲
-i, --inherit 角色能夠繼承它所屬角色的許可權
(這是預設情況)
-I, --no-inherit 角色不繼承許可權
-l, --login 角色能夠登錄(這是預設情況)
-L, --no-login 角色不能登錄
-N, --unencrypted 口令不加密存儲
-P, --pwprompt 給新角色指定口令
-r, --createrole 這個角色可以創建新的角色
-R, --no-createrole 這個角色沒有創建其它角色的許可權(默認)
-s, --superuser 角色將是超級用戶
-S, --no-superuser 角色不能是超級用戶(默認)
-V, --version 輸出版本信息, 然後退出
--interactive 提示缺少角色名及其屬性
而不是使用默認值
--replication 角色能啟動復制
--no-replication 角色不能啟動復制
-?, --help 顯示此幫助, 然後退出
聯接選項:
-h, --host=HOSTNAM 資料庫伺服器所在機器的主機名或套接字目錄
-p, --port=PORT 資料庫伺服器埠號
-U, --username=USERNAME 聯接用戶 (不是要創建的用戶名)
-w, -no-password 永遠不提示輸入口令
-W, --password 強制提示輸入口令
臭蟲報告至<[email protected]>.
C:\Documentsand Settings\Administrator>
方式3
在C:\Program Files\PostgreSQL\9.2\bin文件夾下有可執行文件createuser.exe,我雙擊後,該文件執行一閃就關閉,只好在dos中輸入cmd打開窗口,將該文件拖入窗口中,在輸入「 –U postgres –P Adiminisrator」然後回車,如下圖所示,即可創建資料庫用戶Administrator。但此時該用戶不具有創建database的能力,可以通過pgAdmin III查看。
psql的用法可以通過在dos下輸入psql –help查看,如下圖所示。
MicrosoftWindows XP [版本 5.1.2600]
(C) 版權所有1985-2001 Microsoft Corp.
C:\Documentsand Settings\Administrator>psql --help
psql是PostgreSQL 的互動式客戶端工具。
使用方法:
psql [選項]... [資料庫名稱 [用戶名稱]]
通用選項:
-c,--command=命令 執行單一命令(SQL或內部指令)然後結束
-d, --dbname=資料庫名稱 指定要連接的資料庫 (預設:"Administrator")
-f, --file=文件名 從文件中執行命令然後退出
-l, --list 列出所有可用的資料庫,然後退出
-v, --set=, --variable=名稱=值
為psql變數(名稱)設定值
-V, --version 輸出版本信息, 然後退出
-X, --no-psqlrc 不讀取啟動文檔(~/.psqlrc)
-1 ("one"), --single-transaction
作為一個單一事務來執行命令文件
-?, --help 顯示此幫助, 然後退出
輸入和輸出選項:
-a, --echo-all 顯示所有來自於腳本的輸入
-e, --echo-queries 顯示發送給伺服器的命令
-E, --echo-hidden 顯示內部命令產生的查詢
-L, --log-file=文件名 將會話日誌寫入文件
-n, --no-readline 禁用增強命令行編輯功能(readline)
-o, --output=FILENAME 將查詢結果寫入文件(或 |管道)
-q, --quiet 以沉默模式運行(不顯示消息,只有查詢結果)
-s, --single-step 單步模式 (確認每個查詢)
-S, --single-line 單行模式 (一行就是一條 SQL 命令)
輸出格式選項 :
-A, --no-align 使用非對齊表格輸出模式
-F, --field-separator=字元串
設欄位分隔符(預設:"|")
-H, --html HTML 表格輸出模式
-P, --pset=變數[=參數] 設置將變數列印到參數的選項(查閱 \pset 命令)
-R, --record-separator=字元串
設定記錄分隔符(預設:換行符號)
-t, --tuples-only 只列印記錄i
-T, --table-attr=文本 設定 HTML 表格標記屬性(例如,寬度,邊界)
-x, --expanded 打開擴展表格輸出
-z, --field-separator-zero
設置欄位分隔符為位元組0
-0, --record-separator-zero
設置記錄分隔符為位元組0
聯接選項:
-h, --host=主機名 資料庫伺服器主機或socket目錄(預設:"本地介面")
-p, --port=埠 資料庫伺服器的埠(預設:"5432")
-U, --username=用戶名 指定資料庫用戶名(預設:"Administrator")
-w, --no-password 永遠不提示輸入口令
-W, --password 強制口令提示 (自動)
更多信息,請在psql中輸入"\?"(用於內部指令)或者"\help"(用於SQL命令),
或者參考PostgreSQL文檔中的psql章節.
臭蟲報告至<[email protected]>.
C:\Documentsand Settings\Administrator>
『玖』 postgresql 怎麼備份並導入
PostgreSQL自帶一個客戶端pgAdmin,裡面有個備份,恢復選項,也能對資料庫進行備份 恢復(還原),但最近發現資料庫慢慢龐大的時候,經常出錯,備份的文件過程中出錯的幾率那是相當大,手動調節灰常有限。所以一直尋找完美的備份恢復方案。
夢里尋他千網路,伊人卻在燈火闌珊處...其實PostgreSQL內置不少的工具,尋找的備份恢復方案就在其中:pg_mp,psql。這兩個指令 在資料庫的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.5\;然後進入到bin文件夾,會看到不少的exe文件,這就是PostgreSQL內置的工具了。裡面會找到 pg_mp.exe,psql.exe兩個文件。我們怎麼用他們?
用法:
備份資料庫,指令如下:
pg_mp -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
開始-運行-cmd 彈出dos控制台;然後 在控制台里,進入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最後執行備份指令:
pg_mp -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
指令解釋:如上命令,pg_mp 是備份資料庫指令,164.82.233.54是資料庫的ip地址(必須保證資料庫允許外部訪問的許可權哦~),當然本地的資料庫ip寫 localhost;postgres 是資料庫的用戶名;databasename 是資料庫名。> 意思是導出到C:\databasename.bak文件里,如果沒有寫路徑,單單寫databasename.bak文件名,那麼備份文件會保存在C: \Program Files\PostgreSQL\9.0\bin 文件夾里。
恢復資料庫,指令如下:
psql -h localhost -U postgres -d databasename < C:\databasename.bak(測試沒有成功)
pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(測試成功)
指令解釋:如上命令,psql是恢復資料庫命令,localhost是要恢復到哪個資料庫的地址,當然你可以寫上ip地址,也就是說能遠程恢復(必須保證 資料庫允許外部訪問的許可權哦~);postgres 就是要恢復到哪個資料庫的用戶;databasename 是要恢復到哪個資料庫。< 的意思是把C:\databasename.bak文件導入到指定的資料庫里。
以上所有的是針對windows而言的,如果在linux下,會不會有效?
在linux里依然有效。有一個值得注意的是:如果直接進入PostgreSQL的安裝目錄bin下,執行命令,可能會出現 找不到pg_mp,psql的現象,我們在可以這樣:
備份:
/opt/PostgreSQL/9.5/bin/pg_mp -h 164.82.233.54 -U postgres databasename > databasename.bak
恢復:
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.bak