postgreSQL安装与使用

postgreSQL数据库

安装

安装Postgres软件包以及-contrib增加一些附加实用程序和功能的软件包

sudo apt-get update

sudo apt-get install postgresql postgresql

安装完成后查看运行状态

systemctl status postgresql

安装的同时会在本地操作系统创建一个名为postgres的用户

进入postgreSQL的交互终端
1.切换到postgres用户

sudo -i -u postgres

2.进入postgreSQL

psql

3.退出交互终端

\q

配置与使用

创建一个新用户

1.进入postgreSQL的交互终端

sudo -u postgres psql

2.创建新用户
username为你自己想要创建的用户名,superuser为创建的这个用户拥有的权限

属性说明
login只有具有 LOGIN 属性的角色可以用做数据库连接的初始角色名。
superuser数据库超级用户
createdb创建数据库权限
createrole允许其创建或删除其他普通的用户角色(超级用户除外)
replication做流复制的时候用到的一个用户属性,一般单独设定。
password在登录时要求指定密码时才会起作用,比如md5或者password模式,跟客户端的连接认证方式有关
inherit用户组对组员的一个继承标志,成员可以继承用户组的权限特性
create user usrename superuser;

3.查看已创建的用户

select usename from pg_user;

4.修改用户密码

alter user username password 'password';

配置远程登录

安装postgresql默认的服务端口是5432,同时默认也只允许localhost连接,此时需要修改2个配置文件:
/etc/postgresql/10/main/postgresql.conf # 主要配置文件
/etc/postgresql/10/main/pg_hba.conf # 修改访问策略

修改第一个文件:

sudo vim /etc/postgresql/10/main/postgresql.conf

将 #listen_addresses = ‘localhost’ 改为 listen_addresses = ‘*’

将 #password_encryption = md5 改为 password_encryption = md5

修改第二个文件:

 sudo vim /etc/postgresql/10/main/pg_hba.conf

在文件末尾添加

host    all     username   0.0.0.0/0       md5     
# 允许任意ip,通过username用户,使用密码访问

连接数据库

psql

如果出现 psql: FATAL: role “username” does not exist 说明没有当前用户
解决方法:
1.切换用户,例如postgres

sudo -i -u postgres

psql

2.创建一个同名用户
进入postgreSQL交互环境

create user username superuser;

创建之后可能出现第二条的错误,解决办法见下一条。

如果出现 psql: FATAL: database “username” does not exist 说明不存在username数据库
解决方法:
因为连接时默认为当前用户的同名数据库,所以:
1.创建一个同名的数据库

create database username

2.指定连接的数据库
-d 后跟的参数为连接的数据库名

psql -d database

常用命令

查看所有数据库

\l

切换数据库: \c 参数为数据库名

\c database

切换用户: \c 参数为用户名

\c username

查看所有表

\dt

\d 数据库 —— 得到所有表的名字

\d database

\d 表名 —— 得到表结构

\d table
    原文作者:莫名ypc
    原文地址: https://www.jianshu.com/p/7d133efccaa4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞