㈠ 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文件中直接修改,再重新导入道数据库中。
这个有些危险,如果数据类型不合的话,会出问题。比如由字符类型转数字类型。