一、安装与初始化
1、初始化数据目录

默认安装后已创建 postgres 系统用户

切换到 postgres 用户

$ sudo -iu postgres # Or su - postgres for root

数据目录初始化

[postgres]$ initdb --locale=zh_CN.UTF-8 -E UTF8 -D /var/lib/postgres/data

退出此用户,启动服务 postgresql.service

2、创建用户与数据库

再次进入 sudo -iu postgres,

添加新的数据库用户

$ createuser --interactive

创建数据库

$ createdb myDatabaseName

psql shell

psql -d myDatabaseName
#查看所有数据库
\l
#切换数据库
\c <database>
#列出所有用户及权限
\du
#列出当前数据库所有表
\dt

3、配置

设置远程访问

/var/lib/postgres/data/postgresql.conf
listen_addresses = 'localhost,my_local_ip_address'

查看日志

journalctl -u postgresql.service

二、概念介绍

1.模式 shceme

一个数据库可以有至少一个或多个模式,数据库中的内部资源(表、视图等)存放在模式中,默认是存放在该数据库的 public 模式中。为什么缺省对象都存放在 public 中的呢?因为在使用表(比如创建表)时,如果未指定模式名,那么系统将遍历当前搜索路径,直到找到一个匹配的对象。

使用

SHOW search_path;

在缺省的设置中,返回下面的东西:

 search_path
--------------
"$user",public

首先搜索当前用户同名的模式,因为还没有这样的模式存在, 所以这条记录被忽略。再搜索第二个,最终就会指向 public 模式。

官方建议是这样的:在管理员创建一个具体数据库后,应该为所有可以连接到该数据库的用户分别创建一个与用户名相同的模式,然后,将search_path设置为"$user"。

比如说,我当前的用户名为 xfe,则创建的 schema 也为 xfe,管理的角色是 super

CREATEUSER --interactive

CREATE ROLE super LOGIN PASSWORD '123456';

CREATE SCHEMA xfe AUTHORIZATION super;

删除

DROP SCHEMA xfe;
#如果要删除模式及其所有对象,请使用级联删除:
DROP SCHEMA xfe CASCADE;

除了public和用户创建的模式之外,每个数据库都包含一个pg_catalog模式, 它包含系统表和所有内置数据类型、函数、操作符。pg_catalog总是搜索路径中的一部分。 如果它没有明确出现在路径中,那么它隐含地在所有路径之前搜索。

2.表空间

数据库创建时,默认的所有者是当前创建数据库的角色,默认的表空间是系统的默认表空间--pg_default。因为在PostgreSQL中,数据的创建是通过克隆数据库模板来实现的。

系统默认会克隆 template1 数据库,而 template1 数据库的默认表空间是 pg_default,这个表空间是在数据库初始化时创建的,所以所有template1中的对象将被同步克隆到新的数据库中。

完整的创建数据库语句应该是这样

CREATE DATABASE dbname OWNER kanon TEMPLATE template1 TABLESPACE tablespacename;

3.表空间与模式

表空间是一个存储区域,关联数据落地位置。将表的数据存在一个较慢的磁盘上的表空间,而将表的索引存在于一个快速的磁盘上的表空间。一个表空间中可以存储多个数据库,尽管PostgreSQL不建议这么做。

模式是一个逻辑划分,主要用于区分权限。一个数据库并不知直接存储表结构等对象的,而是在数据库中逻辑创建了至少一个模式,在模式中创建了表等对象,将不同的模式指派该不同的角色,可以实现权限分离,又可以通过授权,实现模式间对象的共享,并且,还有一个特点就是:public模式可以存储大家都需要访问的对象。

233

参考


https://blog.csdn.net/kanon_lgt/article/details/5931522

http://www.postgres.cn/docs/9.4/ddl-schemas.html

archlinux 使用 postgresql的更多相关文章

  1. [转载]打造自己喜欢的Linux桌面----archlinux

    原文地址:打造自己喜欢的Linux桌面----archlinux作者:三尺椴 打造自己的Linux桌面----Archlinux 2011-01-16  文/s_cd ( 常用桌面组合:Archlin ...

  2. [转帖]PostgreSQL ident和peer基于操作系统用户的认证

    PostgreSQL ident和peer基于操作系统用户的认证 https://yq.aliyun.com/articles/55898 其实 local和127. 还是有区别的 这里面应该就是对应 ...

  3. postgresql 基本语法

    postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...

  4. postgresql无法安装pldbgapi的问题

    要对函数进行调试需要安装插件pldbgapi,当初在windows上面的postgresql实例中执行了一下语句就安装上了: create extension pldbgapi; 但是在linux中执 ...

  5. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  6. MongoDB与PostgresQL无责任初步测试

    PostgresQL一秒能插入多少条记录,MongoDB呢?读取的情况又如何?我写了一些简单的程序,得出了一些简单的数据,贴在这里分享,继续往下阅读前请注意下本文标题中的“无责任”,这表示此测试结果不 ...

  7. [PostgreSQL] 图解安装 PostgreSQL

    图解安装 PostgreSQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5894462.html 序 园友的一篇<Asp.Net Cor ...

  8. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  9. PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库

    最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQ ...

随机推荐

  1. Linux文件误删恢复

    一.需求研究 分析对比debugfs.testdisk 6.14.extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作. 二.项目内容 1.工具安 ...

  2. [转]PHP程序员的技术成长规划

    转自:http://blog.leanote.com/post/darker/PHP%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E6%8A%80%E6%9C%AF%E6% ...

  3. 抓包curl解析

    目录 背景 code 背景 抓包工具charles抓取的请求curl,是这样: curl -H ':method: POST' -H ':path: /client.action?functionId ...

  4. fork() 函数简介

    fork() 函数简介 fork系统调用用于创建一个新进程,称为子进程,它与进行fork()调用的进程(父进程)并发运行.创建新的子进程后,两个进程都将执行fork()系统调用之后的下一条指令.子进程 ...

  5. python 之 前端开发( JavaScript变量、数据类型、内置对象、运算符、流程控制、函数)

    11.4 JavaScript 11.41 变量 1.声明变量的语法 // 1. 先声明后定义 var name; // 声明变量时无需指定类型,变量name可以接受任意类型 name= " ...

  6. shell从简单到脱坑

    1.计算1-100的和(seq 1 100 使用反引号括起来的比较坑) #!/bin/bash ` do sum=$[$i+$sum] done echo $sum 2.编写shell脚本,要求输入一 ...

  7. AVR单片机教程——点亮第一个LED

    做了这么多准备,我们终于可以开始用开发板做点事了. 单片机编程与计算机编程有一些不同点.程序都要有零个或多个输入.一个或多个输出,这是两者都有的,但是计算机编程的输入输出主要靠控制台,而单片机没有. ...

  8. python中zipfile模块实例化解析

    文章内容由--“脚本之家“--提供,在此感谢脚本之家的贡献,该网站网址为:https://www.jb51.net/ 简介: zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是 ...

  9. SAS学习笔记47 Macro Quoting

    简单来说:Macro Quoting就是将具有特殊功能字符及字母组合的特殊功能隐藏掉.例如:让分号(;)不再表示一个语句的结束,而就是一个普普通通的字符:让GE不再表示大于等于的比较符,而就是两个普普 ...

  10. MySql五大引擎的区别以及优劣之分

    五大引擎 一: MyISAM:在创建MyISAM的时候会出来三个默认的文件 1.tb_demo.frm,存储表定义:2.tb_demo.MYD,存储数据:3.tb_demo.MYI,存储索引. 因为M ...