• 绝不粘贴命令到终端(防止粘贴板中有删除数据库等有严重影响的指令,数据库中粘贴后是立即执行的,所以paste的时候你不知道你粘贴板上有什么鬼东西
  • 绝不执行自己不了解的脚本(有的脚本可能带有 rm -rf或者删除数据库的脚本,当使用这些脚本的时候必须要看看都是写了什么,比如用到一个脚本向表中随机插入指定数量的数据
  • 绝不在终端直接rm某个文件(能用move to trash的就用move to trash,实在不行就重命名然后mv到一个固定文件夹,每周清理那个文件夹
  • 每次修改或者删除表的时候必须确认表属于哪个数据库?哪个用户?哪个服务器?

2020/10/31


首先输入(由图看来系统自带了postgresql数据库

apt show postgresql

postgres过滤某个字段开头 postgres修改字段名_数据库

然后进行如下输入:(看来出现问题

service postgresql status
sudo su postgres
//出现以下情况

postgres过滤某个字段开头 postgres修改字段名_postgresql_02

安装之前我是做了功课的,据我了解安装完成后,默认会:(1)创建名为"postgres"的Linux用户(2)创建名为"postgres"、不带密码的默认数据库账号作为数据库管理员(3)创建名为"postgres"的表


  • 安装第一步:
sudo apt install postgresql postgresql-contrib

contrib 包,包含一些不属于 PostgreSQL 核心包的实用工具和功能

此时输入之前的命令:

postgres过滤某个字段开头 postgres修改字段名_postgres过滤某个字段开头_03

其中RDBMS:关系数据库管理系统(Relational Database Management System

sudo su postgrers是什么意思呢?su是切换用户的意思,这句话的意思是切换到用户postgres,这个用户是什么时候创建的呢?上面刚说的

所以如果你的是这样的话,我们的postgresql就安装成功啦


说一下上面的提到的默认为我们创建postgresql用户,那在系统应该能查得到吧,于是

cat /etc/group
cat /etc/passwd
//左图passwd 右图group

postgres过滤某个字段开头 postgres修改字段名_postgresql 修改表字段_04

emm 右图的字段是什么意思呢?

比如最后一个postgres:x:133:

//postgres是组名,x是组密码,133是组ID,'133:'之后就是该用户组中的用户

比如右图的倒数第三行sambashare:x:132:luffy意思就是组名为sambashare下有个用户叫luffy

那为什么刚名为postgres用户组没有用户呢?因为在/etc/grop的每一行中,如果用户组是 某个用户的 初始组则 该用户 不会被写入用户字段,也就是说右图的第四字段显示的都是该用户组的附加用户,所以postgres组最后也就是第四字段的用户名为空是因为postgres组是用户postgres的初始组

怎么查看某个用户的初始组?在/etc/passwd文件中第四字段就是用户的初始组,第一字段是用户名

postgres过滤某个字段开头 postgres修改字段名_postgres过滤某个字段开头_05

刚说了x代表密码,那么密码在哪呢?在/etc/shadow里面呢,不过shadow的密码你是看不到的,是经过加密了的,不要想看啦

现在知道了,确实装了postgresql数据库后他为我们系统创建了一个名为postgres的用户

然后你还学到了passwd和group最后还有shadow文件是做什么的


  • 第二步

让我们回到正题,刚只是切换到系统的postgres用户但我们并没有启动postgresql客户端程序,输入

psql

就行咯,看下:

postgres过滤某个字段开头 postgres修改字段名_字段_06


总结:

打开终端输入(切换用户

sudo su postgres

之后输入(登录数据库

psql -U  myuser -d  my_db

然后在数据库my_db 下进行建表,查询等操作

create table student (
name varchar(20),
age int,
no varchar(20) primary key
);

用dt查看当前数据库存在的表

用d name查看某个表的结构

postgres过滤某个字段开头 postgres修改字段名_postgresql 修改表字段_07


删除数据库

DROP DATABASE my_first_db;
//   l查看是否删除成功

删除某个数据库用户

DROP USER my_user;
//   du查看是否成功

新建数据库(为某个用户

create database my_first_db owner shaowen;
//   l查看是否删除成功