您的位置:首页 > 数据库

pgsql 安装及日常操作

2016-03-10 00:00 211 查看
摘要: pgsql 安装及日常操作

pgsql

下载安装包,网上搜索或者官网下载

官网地址:http://www.postgresql.org/

安装过程:

1、上传至Linux服务器对应目录,解压下载的安装包

tax -jxf postgresql-9.5.1.tar.bz2

cd postgresql-9.5.1.tar.bz2

./configure --prefix=/usr/local/pgsql

编译提示:

configure: error: readline library not found

If you have readline already installed, see config.log for details on the

failure. It is possible the compiler isn't looking in the proper directory.

Use --without-readline to disable readline support.

重新编译加上后缀:

./configure --prefix=/usr/local/pgsql --without-readline 即可

然后 make;make install

至此安装完成

2、启动数据库

>1 创建用户postgres

useradd postgres

echo "postgres" |passwd --stdin "postgres"

2> 创建pgsql的数据目录

mkdir -p /data/pgsql/data

chown postgres:postgres /data/pgsql/data

3> 添加环境变量,我这里添加的是全局的,如果是想在自己的个人用户里面,修改对应家目录的文件~./bashrc

vim /etc/profile

export PATH=/usr/local/pgsql/bin:$PATH

export PGDATD=/data/pgsql/data

然后source /etc/profile 使其生效,如果能直接打出比如 post 能自动补全postgres,说明变量生效以及设置成功

4> 初始化数据库,产生一下基础文件

/usr/local/pgsql/bin/initdb –D /data/pgsql/data

开启一些功能,比如日志收集、归档以及归档大小

Vim /data/pgsql/data/postgresql.conf

logging_collector = on

log_rotation_age = 1d

log_rotation_size = 10MB

4> 启动服务

/usr/local/pgsql/postgres –I -D /data/pgsql/data start &

这里加上-i 的意思是允许客户端进行tcp/ip的连接

至此pgsql 安装启动完毕,可以本地连接

3、常用操作

1>本地以及远程连接pgsql和赋权

createuser 是 SQL 命令 CREATE USER的封装。

命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名

参数说明:

[-a]:允许创建其他用户,相当于创建一个超级用户;

[-A]:不允许此用户创建其他用户;

[-d]:允许此用户创建数据库;

[-D]:不允许此用户创建数据库;

[-e]:将执行过程显示到Shell上;

[-P]:创建用户时,同时设置密码;

[-h 主机名]:为某个主机上的Postgres创建用户;

[-p port]:与-h参数一同使用,指定主机的端口。

举例:连接 psql -d template1 -U postgres (用postgres用户连接template1连接数据库)

创建用户并赋权

createuser -a -d -e -P ceshi -h IP (创建一个超级用户,允许从那个IP登录,当然这个ip是否允许登录,还得看数据目录下的两个配置文件是否放行 listenning address ,默认是都可以连接)

删除用户:

dropuser -i -e username

2> 备份和恢复

pg_dump pg_dumpall

pg_dump dbname –U username > psqldateb.sql

psql dbname or tablename –U username < 备份数据

3> 其它日常命令

创建数据库

不用连接进去,直接createdb dbname

如果此时有人在连接访问,无法创建,提示createdb: database creation failed: ERROR: source database "template1" is being accessed by other users

Create table +表数据

create index idx_t_imdba on t_imdba(id); 创建索引,关于哪个表的哪个字段,索引名字叫啥

日志设置: 修改postgresql.conf 文件中的log_directory 的变量值

\du 查看有哪些用户可以连接,以及他们的权限是什么

\c dbname 切换数据库 相当于use dbname

\l 查看当前有多少数据库 相当于 show databases

\d tablename 查看表结构

\di 查看是否有索引

\dt 查看数据库有多少表 相当于show tables

\di 相当于show index from table

\q or crtl+d 退出

select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database; 查看所有数据库的大小

select pg_size_pretty(pg_database_size('mydb')); 查看某个数据的大小,以kb的方式来显示

select pg_database_size('mydb');

4、其它

用客户端连接pgsql数据库操作方式和mysql,差不多,查询增删修改是一样的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: