- 绝不粘贴命令到终端(防止粘贴板中有删除数据库等有严重影响的指令,数据库中粘贴后是立即执行的,所以paste的时候你不知道你粘贴板上有什么鬼东西
- 绝不执行自己不了解的脚本(有的脚本可能带有 rm -rf或者删除数据库的脚本,当使用这些脚本的时候必须要看看都是写了什么,比如用到一个脚本向表中随机插入指定数量的数据
- 绝不在终端直接rm某个文件(能用move to trash的就用move to trash,实在不行就重命名然后mv到一个固定文件夹,每周清理那个文件夹
- 每次修改或者删除表的时候必须确认表属于哪个数据库?哪个用户?哪个服务器?
2020/10/31
首先输入(由图看来系统自带了postgresql数据库
apt show postgresql
然后进行如下输入:(看来出现问题
service postgresql status
sudo su postgres
//出现以下情况
安装之前我是做了功课的,据我了解安装完成后,默认会:(1)创建名为"postgres"的Linux用户(2)创建名为"postgres"、不带密码的默认数据库账号作为数据库管理员(3)创建名为"postgres"的表
- 安装第一步:
sudo apt install postgresql postgresql-contrib
contrib 包,包含一些不属于 PostgreSQL 核心包的实用工具和功能
此时输入之前的命令:
其中RDBMS:关系数据库管理系统(Relational Database Management System
sudo su postgrers是什么意思呢?su是切换用户的意思,这句话的意思是切换到用户postgres,这个用户是什么时候创建的呢?上面刚说的
所以如果你的是这样的话,我们的postgresql就安装成功啦
说一下上面的提到的默认为我们创建postgresql用户,那在系统应该能查得到吧,于是
cat /etc/group
cat /etc/passwd
//左图passwd 右图group
emm 右图的字段是什么意思呢?
比如最后一个postgres:x:133:
//postgres是组名,x是组密码,133是组ID,'133:'之后就是该用户组中的用户
比如右图的倒数第三行sambashare:x:132:luffy意思就是组名为sambashare下有个用户叫luffy
那为什么刚名为postgres用户组没有用户呢?因为在/etc/grop的每一行中,如果用户组是 某个用户的 初始组则 该用户 不会被写入用户字段,也就是说右图的第四字段显示的都是该用户组的附加用户,所以postgres组最后也就是第四字段的用户名为空是因为postgres组是用户postgres的初始组
怎么查看某个用户的初始组?在/etc/passwd文件中第四字段就是用户的初始组,第一字段是用户名
刚说了x代表密码,那么密码在哪呢?在/etc/shadow里面呢,不过shadow的密码你是看不到的,是经过加密了的,不要想看啦
现在知道了,确实装了postgresql数据库后他为我们系统创建了一个名为postgres的用户
然后你还学到了passwd和group最后还有shadow文件是做什么的
- 第二步
让我们回到正题,刚只是切换到系统的postgres用户但我们并没有启动postgresql客户端程序,输入
psql
就行咯,看下:
总结:
打开终端输入(切换用户
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查看某个表的结构
删除数据库
DROP DATABASE my_first_db;
// l查看是否删除成功
删除某个数据库用户
DROP USER my_user;
// du查看是否成功
新建数据库(为某个用户
create database my_first_db owner shaowen;
// l查看是否删除成功