初始化数据库环境分为几步
安装数据库
sudo apt-get update
apt-get install postgresql postgresql-contrib libpq-dev
sudo service postgresql restart 重启服务
## 修改PostgreSQL数据库的默认用户postgres的密码
sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'password'; #修改PostgreSQL的登录密码为:postgres
\q #退出数据库
配置数据库
## 修改PostgresSQL数据库配置实现远程访问
1、打开配置文件,修改以下内容 vi /etc/postgresql/9.5/main/postgresql.conf
2、监听任何地址访问,修改连接权限 #listen_addresses = 'localhost' 改为 listen_addresses = '*'
3、启用密码验证 #password_encryption = on 改为 password_encryption = on
4、保存配置文件,退出vi编辑器
## 1、打开配置文件,增加以下内容,配置可访问的用户ip段
vi /etc/postgresql/9.5/main/pg_hba.conf
## 2、在文档末尾加上以下内容
host all all 0.0.0.0 0.0.0.0 md5
## 3、保存配置文件,退出vi编辑器
/etc/init.d/postgresql restart
创建用户
# 创建用户
CREATE USER dbuser WITH PASSWORD '*****';
# 创建数据库
CREATE DATABASE <name> OWNER <user>;
# 给用户授予数据库所有权限
GRANT ALL PRIVILEGES on database <name> to <user>;
恢复数据库
# 导出数据库表结构
pg_dump -s -U <username> -d <databasename> -h <host> -p <port> > name.sql
# 导入表结构
psql -U <username> -d <database_name> < name.sql
常用操作
\h #查看所有的sql关键字
\? #命令行操作的帮助
\d #查看当前schema 中所有的表
\q #退出pg命令行
\d #schema.table 查看表的结构
\x #横纵显示切换
\dT+ #显示扩展类型相关属性及描述
\dx #显示已安装的扩展插件
\l #列出所有的数据库
\timing #显示执行时间
\c database_name #切换数据库
set search to schema #切换schema
explain sql #解释或分析sql执行过程
\conninfo
show max_connections; # 查看数据库最大连接限制
select count(*) from pg_stat_activity; # 查看当前数据库连接总数
select * from pg_stat_activity; # 查看所有连接的客户端
SELECT count(*) FROM pg_stat_activity WHERE NOT pid=pg_backend_pid(); # 不包含本窗口的所有客户端连接数
1.查看数据库
\l //相当于mysql的,mysql> show databases;
2.查看playboy数据库的大小
select pg_database_size('playboy');
select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;
select pg_size_pretty(pg_database_size('playboy'));
3.查看多表
\d test;
select pg_relation_size('test'); //查看表大小
select pg_size_pretty(pg_relation_size('test')); //以KB,MB,GB的方式来查看表大小
select pg_size_pretty(pg_total_relation_size('test')); //查看表的总大小,包括索引大小
4.查看索引
\di //相当于mysql的,mysql> show index from test;
select pg_size_pretty(pg_relation_size('playboy_id_pk')); //查看索大小
5.查看表空间及大小
select spcname from pg_tablespace; //查看所有表空间
select pg_size_pretty(pg_tablespace_size('pg_default')); //查看表空间大小