一、安装postgresql
安装Postgres软件包以及-contrib增加一些附加实用程序和功能的软件包
sudo apt-get update
sudo apt install postgresql postgresql-contrib
安装完成后,可以执行的相关操作
sudo /etc/init.d/postgresql status 或 systemctl status postgresql # 查看postgresql状态
sudo /etc/init.d/postgresql stop 或 systemctl stop postgresql # 停止postgresql服务
sudo /etc/init.d/postgresql start 或 systemctl start postgresql # 启动postgresql服务
sudo /etc/init.d/postgresql restart 或 systemctl restart postgresql # 重启postgresql服务
查看所有postgres进程
ps -ef | grep postgres
显示如下
root 1134 1015 0 16:48 pts/0 00:00:00 sudo vim /etc/postgresql/10/main/pg_hba.conf
root 1135 1134 0 16:48 pts/0 00:00:00 vim /etc/postgresql/10/main/pg_hba.conf
postgres 1197 1 0 16:50 ? 00:00:00 /usr/lib/postgresql/10/bin/postgres -D /var/lib/postgresql/10/main -c config_file=/etc/postgresql/10/main/postgresql.conf
postgres 1199 1197 0 16:50 ? 00:00:00 postgres: 10/main: checkpointer process
postgres 1200 1197 0 16:50 ? 00:00:00 postgres: 10/main: writer process
postgres 1201 1197 0 16:50 ? 00:00:00 postgres: 10/main: wal writer process
postgres 1202 1197 0 16:50 ? 00:00:00 postgres: 10/main: autovacuum launcher process
postgres 1203 1197 0 16:50 ? 00:00:00 postgres: 10/main: stats collector process
postgres 1204 1197 0 16:50 ? 00:00:00 postgres: 10/main: bgworker: logical replication launcher
***** 1256 1015 0 16:50 pts/0 00:00:00 grep --color=auto postgres
安装的同时会在本地操作系统创建一个名为postgres的用户
进入postgreSQL的交互终端
1.切换到postgres用户
sudo -i -u postgres
2.进入postgreSQL
psql
以上两部也可以合成一步:
sudo -i -u postgres psql
3.退出交互终端
\q
二、配置与使用
创建一个新用户
1.进入postgreSQL的交互终端
sudo -i -u postgres psql
2.创建新用户
la为你自己想要创建的用户名,superuser为创建的这个用户拥有的权限
属性 | 说明 |
---|---|
login | 只有具有 LOGIN 属性的角色可以用做数据库连接的初始角色名 |
superuse | 数据库超级用户 |
createdb | 创建数据库权限 |
createrole | 允许其创建或删除其他普通的用户角色(超级用户除外) |
replication | 做流复制的时候用到的一个用户属性,一般单独设定 |
password | 在登录时要求指定密码时才会起作用,比如md5或者password模式,跟客户端的连接认证方式有关 |
inherit | 用户组对组员的一个继承标志,成员可以继承用户组的权限特性 |
… | … |
create user la superuser;
3.查看已创建的用户
select usename from pg_user;
4.修改用户密码
alter user la password 'password';
5.退出交互终端
\q
三、配置远程登录
安装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 la 0.0.0.0/0 md5
# 允许任意ip,通过la用户,使用密码访问
连接数据库
psql -h 10.20.***.** -p 5432 -U la -d la
-h 后面跟的是IP地址
-p 后面跟的是端口号
-U 后面跟的是用户名
-d 后面跟的是数据库名称
可能错误一:如果出现 psql: FATAL: role "la" does not exist
说明没有当前用户
解决方法:
1.切换用户,例如postgres
sudo -i -u postgres psql
2.创建一个同名用户
进入postgreSQL交互环境
create user la superuser;
3.退出交互终端
\q
可能错误二:如果出现 psql: FATAL: database "la" does not exist
说明不存在la数据库
解决方法:
因为连接时默认为当前用户的同名数据库,所以:
1.切换用户,例如postgres
sudo -i -u postgres psql
2.创建一个同名的数据库
create database la
3.退出交互终端
\q
4.再次连接的数据库
psql -h 10.20.***.** -p 5432 -U la -d la
四、常用命令
查看所有数据库
\l
切换数据库: \c 参数为数据库名
\c database
切换用户: \c 参数为用户名
\c username
查看所有表
\dt
\d 数据库 —— 得到所有表的名字
\d database
\d 表名 —— 得到表结构
\d table
五、移除postgressql 10 on ubuntu18.04 server
卸载当前所有postgresql 相关的Package
sudo apt-get --purge remove postgresql*
sudo apt-get --purge remove postgresql*
下面删除配置文件和User 是关键
rm -r /etc/postgresql/
rm -r /var/lib/postgresql/
userdel -r postgres