一、安装与初始化
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. phpstudy 8.0 安装redis并使用,解决phpstudy 8.0直接启用redis使用不了

    目前phpstudy 8.0直接安装redis启用,是用不了的 在phpstudy 8.0环境面板中找到redis安装后: 打开redis安装目录配置文件redis.windows.conf配置red ...

  2. 帮你培养类型思维TypeScript(一)

    前言:作为一名程序员,相信你已经熟练掌握了JavaScript语言,由于其应用领域非常的广泛,所以算得上是每一个程序员必须要掌握的语言.但是JavaScript自身的缺点,相信每一个程序员也是深有体会 ...

  3. 对spring的简单了解

    对spring的简单了解 什么是spring Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的,同时Spring也是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 特点 ...

  4. Semi-supervised learning for Text Classification by Layer Partitioning

    本文是arxiv上一篇较短的文章,之所以看是因为其标题中半监督和文本分类吸引了我.不过看完之后觉得所做的工作比较少,但想法其实也挺不错. 大多数的半监督方法都选择将小扰动施加到输入向量或其表示中,这种 ...

  5. 026 Android 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+读取内存空间、手机进程信息+常驻悬浮框

    1.目标效果 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+常驻悬浮框 2.页面布局文件 (1)activity_process_manager.xml <?xml ...

  6. Java中关于时间日期格式保存到mysql的问题

    首先在设置数据库的时间日期字段的时候要先确定好采用何种类型,DATETIME. TIMESTAMP.DATE.TIME.YEAR. 其中datetime.time用的比较多,对应java中生成的poj ...

  7. Python 装饰器执行顺序

    Python 装饰器执行顺序 之前同事问到两个装饰器在代码中使用顺序不同会不会有什么问题,装饰器是对被装饰的函数做了一层包装,然后执行的时候执行了被包装后的函数,例如: def decorator_a ...

  8. python 之 并发编程(线程Event、协程)

    9.14 线程Event connect线程执行到event.wait()时开始等待,直到check线程执行event.set()后立即继续线程connect from threading impor ...

  9. 2019牛客暑期多校训练营(第四场)A meeting(dfs或dp,dp待更新)

    示例1: 输入: 4 21 23 13 42 4 输出:2 说明: They can meet at place 1 or 3. 题意:从K个点到达不联通图某个点需要的最短时间,这个最短时间是这K个人 ...

  10. Arraylist的遍历方式、java反射机制

    先定义ArrayList再添加几条数据:         ArrayList arr=new ArrayList(); //往arrList中增加几条数据 arr.add(1); arr.add(2) ...