㈠ linux中postgres吃內存怎麼辦
方法/步驟
首先上傳軟體至伺服器。執行文件許可權的修改。
進入文件所在目錄,執行命令chmod 755 postgresql-9.2.4-1-linux-x64.run
執行命令安裝資料庫。
進入文件所在目錄,輸入./postgresql-9.2.4-1-linux-x64.run 。
然後選擇資料庫安裝目錄。
本篇默認直接回車。即安裝路徑為/opt/PostgreSQL/9.2/。
選擇數據保存的路徑。
本篇也默認。直接回車。即路徑為:/opt/PostgreSQL/9.2/data 目錄。
設置postgres賬戶的密碼,以及設置埠號。
本篇埠號為默認5432,直接回車即可。
選擇資料庫的編碼格式。
本篇選擇4,即為這zh_CN.utf8。
選擇完編碼格式後,等待資料庫的安裝進度,待進度達到100%時候證明資料庫已經安裝上。
驗證是否安裝完畢,且資料庫已啟動成功。
執行命令ps -e | grep postgres,查看進程是否存在。
執行命令lsof -i:5432,查看資料庫埠是否啟用。
㈡ 如何在Linux下調試PostgreSQL
1. 安裝Linux操作系統
注意把gdb、Emacs或DDD這些開發工具都安裝上。如果是在虛擬機上安裝,依然需要設置Linux系統的網路環境;另外需要設置文件共享,方便windows下面的postgreSQL源碼能在Linux下面訪問到。
2. 安裝PostgreSQL
useradd postgre
(自動建立 postgre 組;設計人員為了安全考慮,PostgreSQL 不能以root 用戶運行,所以必須建立對應的用戶和組。)
解壓到 /usr/local/src
tar xvfz postgresql-8.4.tar.gz
cd postgresql-8.4
./configure --prefix=/usr/local/pgsql --enable-debug --enable-assert --without-readline --without-zlib
make
make install
chown -R postgre.postgre /usr/local/pgsql
3. 設置Postgres環境變數(非必須)
vi ~postgre/.bash_profile
添加:
PGLIB=/usr/local/pgsql/lib
PGDATA=$HOME/data
PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
export PGLIB PGDATA PATH MANPATH
4. 建立資料庫
以 postgres 用戶登錄:
su postgre
建立資料庫目錄:
mkdir data
啟動資料庫引擎:
initdb –D 「資料庫目錄」
之後可以根據提示,通過psql進入資料庫
5. 構造PostgreSQL調試環境
先 psql template1進去,然後
select pg_backend_pid();
獲得id,就是gdb後面用到的數字
gdb /usr/local/pgsql/bin/postgres 997(pid的數字)
如果只使用gdb,全部是命令行界面;而Emac、DDD分別是彩色、黑白用戶互動式圖形界面。
6. 使用gdb進行調試
㈢ linux 下怎麼看postgresql安裝到哪個目錄了
進入/opt/pgsql-9.1.7目錄可以看到安裝後的postgresql的文件。
linux下安裝PostgreSQL資料庫步驟如下:
0.編譯環境
Linux: CentOS 5.5
gcc: 4.1.2
1. 安裝PostgreSQL
1) 解壓postgresql-9.1.7.tar.bz2
#tar jxvfpostgresql-9.1.7.tar.bz2
5)設置postgresql服務開機自啟動
#chkconfig --add postgresql
執行上面的命令,就可以實現postgresql服務的開機自啟動。
㈣ 如何查看linux安裝postgresql成功
在已經安裝了PostgreSQL的Linux上,使用下面的命令即可查詢安裝的版本:
psql --version
PostgreSQL是以加州大學伯克利分校計算機系開發的 POSTGRES,現在已經更名為PostgreSQL,版本 4.2為基礎的對象關系型資料庫管理系統(ORDBMS)。PostgreSQL支持大部分 SQL標准並且提供了許多其他現代特性:復雜查詢、外鍵、觸發器、視圖、事務完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數據類型、函數、操作符、聚集函數、索引。免費使用、修改、和分發 PostgreSQL,不管是私用、商用、還是學術研究使用。
㈤ postgresql命令 linux中怎麼退出
直接在命令行輸入:quit或者是exist即可完成退出。 備註:其實最簡單的方法就是關閉登錄窗口,或者切換用戶的形式完成退出當前用戶的資料庫操作。
㈥ linux下怎樣刪除postgresql中的資料庫中所有數據
你好,刪除命令如下:
-bash-3.2$ createdb abc -O playboy
CREATE DATABASE
-bash-3.2$ dropdb abc //dropdb刪除資料庫
DROP DATABASE
-bash-3.2$ createdb abc -O playboy
CREATE DATABASE
-bash-3.2$ psql -U playboy -d playboy
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.
type: right for distribution terms
h for help with SQL commands
? for help with psql commands
g or terminate with semicolon to execute query
q to quit
playboy=> drop database abc; //登錄後的刪除資料庫,注意,不能刪除當前登錄的資料庫
DROP DATABASE
刪除操作的前提是,你是超級用戶,或者是該資料庫的擁有者才行。表也一樣,pgsql有一點很特別,就是庫是你的,表不一定是你的。這個有點搞。
㈦ linux 怎麼查詢postgres資料庫
postgres下一些查詢有時候是不同於其他資料庫的。
查詢版本:psql --version
進入資料庫後,使用下面的方法進行查詢。
(1)顯示SQL語句執行時間
\timing on 退出資料庫失效
(2)顯示postgres中所有的表總數(包含資料庫自帶的)
select count(*) from pg_tables;
安裝好資料庫系統自帶為58個。
(3)顯示用戶生成的資料庫列表
\d
(4)顯示某個表列屬性
\d tablename
(5)刪除表中所有數據
delete from tablename --寫入日誌
Truncate Table tablename --不寫入日誌
TRUNCATE TABLE
刪除表中的所有行,而不記錄單個行刪除操作。
語法
TRUNCATE TABLE name
參數
name
是要截斷的表的名稱或要刪除其全部行的表的名稱。
注釋
TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日誌資源少。
DELETE 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,並且只在事務日誌中記錄頁的釋放。
TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 DELETE。
如果要刪除表定義及其數據,請使用 DROP TABLE 語句。
對於由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由於 TRUNCATE TABLE 不記錄在日誌中,所以它不能激活觸發器。
TRUNCATE TABLE 不能用於參與了索引視圖的表。
示例
下例刪除 authors 表中的所有數據。
TRUNCATE TABLE authors
(6)顯示當前用戶
\c
(7)顯示當前資料庫所有用戶
\
(8)創建用戶
create user xxx with password 'xxxxxx';
(9)更改用戶密碼
alter user xxx with password 'yyyy';
(10)更改用戶連接
\c database username
(11)更改表名
更改表名稱
alter table smallint rename to integer;
(12)更改列名
更改表列名
alter table integer rename column id to id1;
(13)顯示日期
show datestyle;
(14)設置日期格式
set datestyle=MDY;
(15)列印詳細出錯信息
postgres=# \set VERBOSITY verbose
postgres=#
postgres=#
postgres=# create table (id );
ERROR: syntax error at or near "(" at character 14
STATEMENT: create table (id );
ERROR: 42601: syntax error at or near "("
LINE 1: create table (id );
^
LOCATION: scanner_yyerror, scan.l:1044
(16)更改列屬性
postgres=# alter table a1 alter column id2 set DATA TYPE int;
(17)查看幫助信息
\h alter table
(18)列顯示
\x
(19)創建函數
CREATE OR REPLACE FUNCTION f_value_single()
returns void AS $_$
DECLARE
BEGIN
for i in 1..2000000 loop
insert into abc values(1,'a','a');
end loop;
return;
END;
$_$ language plpgsql;
將表名作為入參
create or replace function count(varchar)
returns bigint
as
selectcount(∗)fromquoteident($1);
language 'sql';
(20)關閉資料庫3種模式
SIGTERM
不再允許新的連接,但是允許所有活躍的會話正常完成他們的工作,只有在所有會話都結束任務後才關閉。這是智能關閉。
SIGINT
不再允許新的連接,向所有活躍伺服器發送 SIGTERM(讓它們立刻退出),然後等待所有子進程退出並關閉資料庫。這是快速關閉。
SIGQUIT
令 postgres 向所有子進程發送 SIGQUIT 並且立即退出(所有子進程也會立即退出),而不會妥善地關閉資料庫系統。這是立即關閉。這樣做會導致下次啟動時的恢復(通過重放 WAL 日誌)。我們推薦只在緊急的時候使用這個方法。
SIGKILL
此選項盡量不要使用,這樣會阻止伺服器清理共享內存和信號燈資源,那樣的話你只能在啟動伺服器之前自己手工做這件事。另外,SIGKILL 直接把 postgres 殺掉,而不會等它把信號中繼給它的子進程,因此我們還需要手工殺掉每個獨立子進程。
㈧ postgres命令 linux中怎麼退出
postgres命令 linux中怎麼退出
直接輸入命令 \q 即可
㈨ linux怎麼用命令登陸postgres
(1)用戶實用程序:
createdb 創建一個新的PostgreSQL的資料庫(和SQL語句:CREATE DATABASE 相同)
createuser 創建一個新的PostgreSQL的用戶(和SQL語句:CREATE USER 相同)
dropdb 刪除資料庫
dropuser 刪除用戶
pg_mp 將PostgreSQL資料庫導出到一個腳本文件
pg_mpall 將所有的PostgreSQL資料庫導出到一個腳本文件
pg_restore 從一個由pg_mp或pg_mpall程序導出的腳本文件中恢復PostgreSQL資料庫
psql 一個基於命令行的PostgreSQL互動式客戶端程序
vacuumdb 清理和分析一個PostgreSQL資料庫,它是客戶端程序psql環境下SQL語句VACUUM的shell腳本封裝,二者功能完全相同
(2)系統實用程序
initdb 創建一個用於存儲資料庫的PostgreSQL數據目錄,並創建預定義的模板資料庫template0和template1,生成共享目錄表 catalog;此程序通常只在安裝PostgreSQL時運行一次
initlocation 創建一個輔助的PostgreSQL資料庫存儲區域
ipcclean 從停止的PostgreSQL伺服器中清除共享內在和孤立信號標志
pg_ctl 啟動、停止、重啟PostgreSQL服務(比如:pg_ctl start 啟動PostgreSQL服務,它和service postgresql start相同)
pg_controldata 顯示PostgreSQL服務的內部控制信息
postgres PostgreSQL單用戶模式的資料庫服務
postmaster PostgreSQL多用戶模式的資料庫服務
4.這裡面最重要的是psql這個客戶端程序最為重要。啟用客戶端程序psql的方法是:
切換到PostgreSQL預定義的資料庫超級用戶postgres,啟用客戶端程序psql,並連接到自己想要的資料庫,比如說:
psql template1
出現以下界面,說明已經進入到想要的資料庫,可以進行想要的操作了。
template1=#
5.在資料庫中的一些命令:
template1=# \l 查看系統中現存的資料庫
template1=# \q 退出客戶端程序psql
template1=# \c 從一個資料庫中轉到另一個資料庫中,如template1=# \c sales 從template1轉到sales
template1=# \dt 查看錶
template1=# \d 查看錶結構
template1=# \di 查看索引
[基本資料庫操作]========================
*創建資料庫:
create database [資料庫名];
*查看資料庫列表:
\d
*刪除資料庫:
drop database [資料庫名];
創建表:
create table ([欄位名1] [類型1] <references 關聯表名(關聯的欄位名)>;,[欄位名2] [類型2],......<,primary key (欄位名m,欄位名n,...)>;);
*查看錶名列表:
\d
*查看某個表的狀況:
\d [表名]
*重命名一個表:
alter table [表名A] rename to [表名B];
*刪除一個表:
drop table [表名];
========================================
[表內基本操作]==========================
*在已有的表裡添加欄位:
alter table [表名] add column [欄位名] [類型];
*刪除表中的欄位:
alter table [表名] drop column [欄位名];
*重命名一個欄位:
alter table [表名] rename column [欄位名A] to [欄位名B];
*給一個欄位設置預設值:
alter table [表名] alter column [欄位名] set default [新的默認值];
*去除預設值:
alter table [表名] alter column [欄位名] drop default;
在表中插入數據:
insert into 表名 ([欄位名m],[欄位名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的數據:
update [表名] set [目標欄位名]=[目標值] where [該行特徵];
刪除表中某行數據:
delete from [表名] where [該行特徵];
delete from [表名];--刪空整個表
6.要注意隨時對資料庫進行清理、收回磁碟空間並更新統計信息,使用下面的命令就搞定!
vaccumdb -d sales -z
-a 對所有的資料庫操作
-z 保證不斷地刪除失效的行,節約磁碟空間,將統計信息更新為最近的狀態
7.PostgreSQL用戶認證
PostgreSQL數據目錄中的pg_hba.conf的作用就是用戶認證,可以在/var/lib/pgsql/data中找到。
有以下幾個例子可以看看:
(1)允許在本機上的任何身份連接任何資料庫
TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust(無條件進行連接)
(2)允許IP地址為192.168.1.x的任何主機與資料庫sales連接
TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host sales all 192.168.1.0 255.255.255.0 ident sameuser(表明任何操作系統用戶都能夠以同名資料庫用戶進行連接)
8.看了那麼多,來一個完整的創建PostgreSQL資料庫用戶的示例吧
(1)進入PostgreSQL高級用戶
(2)啟用客戶端程序,並進入template1資料庫
psql template1
(3)創建用戶
template1=# CREATE USER hellen WITH ENCRYPED PASSWORD'zhenzhen'
(4)因為設置了密碼,所以要編輯pg_hba.conf,使用戶和配置文件同步。
在原有記錄上面添加md5
local all hellen md5
(4)使用新用戶登錄資料庫
template1=# \q
psql -U hellen -d template1
PS:在一個資料庫中如果要切換用戶,要使用如下命令:
template1=# \!psql -U tk -d template1
9.設定用戶特定的許可權
還是要用例子來說明:
創建一個用戶組:
sales=# CREATE GROUP sale;
添加幾個用戶進入該組
sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;
授予用戶級sale針對表employee和procts的SELECT許可權
sales=# GRANT SELECT ON employee,procts TO GROUP sale;
在sale中將用戶user2刪除
sales=# ALTER GROP sale DROP USER sale2;
10.備份資料庫
可以使用pg_mp和pg_mpall來完成。比如備份sales資料庫:
pg_mp sales>/home/tk/pgsql/backup/1.bak
㈩ 在linux下的PostgreSQL中,如何修改欄位的數據類型(用命令修改)
8.0版以上的時候:
alter table 你的表名 alter column 列名 type 你的新類型
8.0版以下的時候:
把要修改的表mp下來,在mp文件中直接修改,再重新導入道資料庫中。
這個有些危險,如果數據類型不合的話,會出問題。比如由字元類型轉數字類型。