Ubuntu18.04安装Postgresql

  1. 查看Postgresql版本
apt list postgresql*
  1. 如果没有需要的版本,进行更新
sudo apt update
  1. 安装指定版本的PG
sudo apt-get install postgresql-10
sudo apt install postgresql-contrib //附加功能包
  1. 查看PG状态
service postgresql status
  1. 当PG安装完成后,会自动创建一个计算机用户postgre,那么,当PG启动后,此用户可连接PG
sudo su postgres //切换到postgre用户
psql  //进入pg交互页面

在这里插入图片描述

  1. postgres是一个超级用户,拥有所有权限,同时也是数据库默认系统用户。因此,只有处于postgres或者超级用户时,才可以创建其他用户,同时创建其他用户的密码。(注:postgres默认不带密码,于是也可以给postgres添加密码)
/* 不带密码的创建 */
CREATE ROLE 用户名;

/* 带密码的创建 */
CREATE USER 用户名 WITH PASSWORD '密码';

/* 显示所有用户 */
\du

/* 更改postgres密码 */
ALTER USER postgres WITH PASSWORD '新的密码';

/* 更改其他用户密码 */
ALTER USER 用户名 WITH PASSWORD '新的密码';

/* 赋予其他用户超级用户权限 */
ALTER USER 用户名 WITH SUPERUSER;

/* 赋予其他用户普通权限 */
ALTER USER 用户名 WITH privileges;

/* 把表的所有权限给予给指定用户 */
GRANT ALL ON 表名 TO 用户名; 

/* 把数据库的所有权限给予给指定用户 */
GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;

/* 撤销用户权限 */
REVOKE privileges ON 表名 FROM 用户名;
  1. 使用postgres来创建数据库
/* 创建数据库 */
create database 数据库名; 

/* 删除数据库 */
drop database 数据库名;  

/* 列举数据库 */
\l

/* 切换数据库 */
\c 数据库名
  1. 注意,当创建的其他用户,必须需要与Ubuntu的用户同名,才可以切换到其他用户下进行psql操作,进入PG交互界面。
sudo -i -u 用户名
psql
  1. 但是,又出现另一个情况,当输入psql命令时,至少有一个数据库名与该用户名相同,才能进入PG交互页面。
    在这里插入图片描述
  2. 但是,创建的数据库名不同又怎么办(该数据库属于其他用户),就需要指定数据库,就需要使用如下命令:(注:第一个用户名指Ubuntu用户名,第二个指数据库其他用户名,两个用户名要相同,数据库名)
sudo -u 用户名 psql -U 用户名 -d 数据库名  

通用如下办法,不用切换到其他用户:

psql -U 用户名 -d 数据库名
  1. 有关表的操作如下,这部分借鉴了In丶格调儿。
/* 增加让主键自增的权限 */
grant all on sequence tablename_keyname_seq to webuser;

 /* 重命名一个表 */
alter table [表名A] rename to [表名B]; 

/* 删除一个表 */
drop table [表名]; 

/* 在已有的表里添加字段 */
alter table [表名] add column [字段名] [类型]; 

/* 删除表中的字段 */
alter table [表名] drop column [字段名]; 

/* 重命名一个字段 */
alter table [表名] rename column [字段名A] to [字段名B]; 

/* 给一个字段设置缺省值 */
alter table [表名] alter column [字段名] set default [新的默认值];

/* 去除缺省值 */
alter table [表名] alter column [字段名] drop default; 

/* 插入数据 */
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......); 

/* 修改数据 */
update [表名] set [目标字段名]=[目标值] where ...; 

/* 删除数据 */
delete from [表名] where ...; 

/* 删除表 */
delete from [表名];

/* 查询 */
SELECT * FROM dbname WHERE ...;

/* 创建表 */
create table (
    [字段名1] [类型1] primary key,
    [字段名2] [类型2],
    ......,
    [字段名n] [字段名n] )

退出
\q
quit
  1. 远程登录
    postgresql默认的服务端口是5432,且默认只允许localhost连接。因此,修改2个配置文件
第一个postgresql.conf
/etc/postgresql/10/main/postgresql.conf   # 基础配置文件#listen_addresses = 'localhost'替换如下
listen_addresses = '*'

第二个pg_hba.conf
/etc/postgresql/10/main/pg_hba.conf     # 修改访问配置
修改为如下内容
host  all  用户名  0.0.0.0/0  md5     # 允许任意ip,通过某个用户,使用密码访问

重启数据库
sudo /etc/init.d/postgresql restart
停止为
sudo /etc/init.d/postgresql stop
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值