一、安装与初始化
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. instance与type区别

    class Foo(object): pass class Bar(Foo): pass obj = Bar() # isinstance用于判断,对象是否是指定类的实例 (错误的) # isinst ...

  2. Git常用命令及方法

    https://blog.csdn.net/web_csdn_share/article/details/79243308 Git常用命令及方法大全 下面是我整理的常用 Git 命令清单.几个专用名词 ...

  3. ubuntu18.04 安装 wps2019

    安装包可以从官网下载 linuxidc@linuxidc:~/linuxidc.com$ sudo dpkg -i *.deb [sudo] linuxidc 的密码: 正在选中未选择的软件包 wps ...

  4. docker 通过overlay 构建跨主机联网通信

    初始化 swarm meiya@meiya:~$ docker swarm init 将当前节点作为manager节点加入swarm meiya@meiya:~$ docker swarm join- ...

  5. .net core中关于System.Text.Json的使用

    在.Net Framework的时候序列化经常使用Newtonsoft.Json插件来使用,而在.Net Core中自带了System.Text.Json,号称性能更好,今天抽空就来捣鼓一下. 使用起 ...

  6. 学习Ajax小结

    Ajax 学习         1.ajax的概念              局部刷新技术,不是一门新技术,是多种技术的组合,是浏览器端技术         2.作用             可以实现 ...

  7. sqlserve 数据库8G log文件也有10来g 按日期删除 方法

    数据库存了几年的数据没有维护过,数据庞大,日志文件也不小,如何清理不需要的数据呢 首先考虑的肯定是某个日期之前的数据清除掉 delete from 表名 where cast(字段名 as datet ...

  8. Struts笔记5

    文件下载 1.写action类 package com.gyf.web.action; import java.io.File; import java.io.FileInputStream; imp ...

  9. (7)Spring Boot web开发 --- servlet容器

    文章目录 配置嵌入式 Servlet 容器 注册 三大组件 使用其他 servlet 容器 使用外置的 `Servlet` 容器 配置嵌入式 Servlet 容器 Spirng Boot 默认使用自带 ...

  10. WUSTOJ 1296: JAM计数法(Java)

    题目链接: