archlinux 使用 postgresql
默认安装后已创建 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的更多相关文章
- [转载]打造自己喜欢的Linux桌面----archlinux
原文地址:打造自己喜欢的Linux桌面----archlinux作者:三尺椴 打造自己的Linux桌面----Archlinux 2011-01-16 文/s_cd ( 常用桌面组合:Archlin ...
- [转帖]PostgreSQL ident和peer基于操作系统用户的认证
PostgreSQL ident和peer基于操作系统用户的认证 https://yq.aliyun.com/articles/55898 其实 local和127. 还是有区别的 这里面应该就是对应 ...
- postgresql 基本语法
postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...
- postgresql无法安装pldbgapi的问题
要对函数进行调试需要安装插件pldbgapi,当初在windows上面的postgresql实例中执行了一下语句就安装上了: create extension pldbgapi; 但是在linux中执 ...
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- MongoDB与PostgresQL无责任初步测试
PostgresQL一秒能插入多少条记录,MongoDB呢?读取的情况又如何?我写了一些简单的程序,得出了一些简单的数据,贴在这里分享,继续往下阅读前请注意下本文标题中的“无责任”,这表示此测试结果不 ...
- [PostgreSQL] 图解安装 PostgreSQL
图解安装 PostgreSQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5894462.html 序 园友的一篇<Asp.Net Cor ...
- Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库
最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQ ...
随机推荐
- 02. xadmin的过滤器queryset()
需求: 每个老师都只能看到自己的课程 # models.py from django.contrib.auth.models import AbstractUser class UserProfile ...
- go创建模块化项目
比如我要创建一个xxx-system,里面可能有多个子模块,步骤如下: 1.mkdir xxx-system 2.cd xxx-system 3.在xxx-system目录下创建一系列的service ...
- Python18之函数定义及调用,注释
一.函数定义 def 函数名(形参1,形参2...): 函数体 return 返回值 (可以返回任何东西,一个值,一个变量,或是另一个函数的返回值,如果函数没有返回值,可以省略retu ...
- 2018ACM-ICPC亚洲区域赛南京站I题Magic Potion(网络流)
http://codeforces.com/gym/101981/attachments 题意:有n个英雄,m个敌人,k瓶药剂,给出每个英雄可以消灭的敌人的编号.每个英雄只能消灭一个敌人,但每个英雄只 ...
- LC 297 Serialize and Deserialize Binary Tree
问题: Serialize and Deserialize Binary Tree 描述: Serialization is the process of converting a data stru ...
- Linux 进程地址空间及原理
1.程序地址空间 首先,我们先看学c/c++时候学到的程序内存布局: 准确地说,程序地址空间其实就是进程的地址空间,实际就是pcb中的mm_struct. 接下来,我们用fork()演示一下 ...
- Spring Boot集成Junit测试
添加依赖: 在测试类上添加注解:
- 封装函数(累计和、K型、金字塔)
// 假设有个函数,只要传参数进去,就能统计累加的结果 function test($n){ if($n==1){ return 1; } return $n+test($n-1);}echo tes ...
- 网页调试js时,如何知道某个事件对应哪段js代码?
有时候我们需要知道某个事件对应的js代码,比如点击一个div元素时,出现下拉框,我想知道这个功能对应的js代码,那就可以按下图操作: 勾选click事件,重新运行,那么就会在每个click事件那里设置 ...
- jQueryUI的widget的Hello World
为了看懂jQuery-File-Upload里面的代码,所以学习到这里 //main.js //实践自定义jquery widget,风格1 (function($){ //$.widget('命名空 ...