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