postgresql常用命令_postgis 去掉用户的密码

连接用户和数据库
使用创建的用户能登录查看相应数据库,则可进行下一步。

[root@localhost ~]# psql -h localhost -U monitoring -p 54321 wiseucmsg

3、撤销用户权限

撤销用户 runoob权限:

=# REVOKE ALL ON COMPANY FROM runoob;

删除用户:

runoobdb=# drop user runoob;

设置是 supseruser 以及 登录权限

alter user zhaobsh superuser login

修改指定用户指定权限

alter user postgres superuser createrole createdb replication;
注意:如果出现 FATAL: role ‘…’ is not permitted to log in. 的错误

alter user postgres superuser createrole createdb replication login;

4、查看用户权限

1、查看某用户的表权限

select * from information_schema.table_privileges where grantee=‘user_name’;

2、查看usage权限表

select * from information_schema.usage_privileges where grantee=‘user_name’;

3、查看存储过程函数相关权限表

select * from information_schema.routine_privileges where grantee=‘user_name’;

4、建用户授权

create user user_name;
alter user user_name with password ‘’;
alter user user_name with CONNECTION LIMIT 20;#连接数限制

创建数据库

CREATE DATABASE dbname;

postgres=# create database dbtest owner username; – 创建数据库指定所属者
CREATE DATABASE

或者

$ createdb -h localhost -p 5432 -U postgres runoobdb
password ******

将数据库得权限,全部赋给某个用户

postgres=# grant all on database dbtest to username; – 将dbtest所有权限赋值给username
GRANT

设置是 supseruser 以及 登录权限
alter user zhaobsh superuser login

5、 修改linux系统中postgres用户的密码

PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:
步骤一:删除用户postgres的密码

sudo passwd -d postgres

步骤二:设置用户postgres的密码

sudo -u postgres passwd

系统提示输入新的密码

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

6、使用pgAdmin客户端 工具创建数据库

pgAdmin 工具提供了完整操作数据库的功能:
在这里插入图片描述

7、数据库的导入导出

导入整个数据库

psql -U username databasename < /data/dum.sql – 用户名和数据库名
pg_dump ga_zj_taizhou.sql | psql wang_wang

或者

进入具体的数据库导入
postgres@ubuntu:~$ psql
psql (9.6.6)
Type “help” for help.

postgres=# \c wang_wang
You are now connected to database “wang_wang” as user “postgres”.
wang_wang=# \i ga_zj_taizhou.sql

在这里插入图片描述
注意 : 因为是从其他地方备份出来的sql文件,从一个数据库导入另一台数据库可能会报下面的错误

\i /root/test.sql #导入数据库数据
psql:ga_zj_taizhou.sql:1408597: ERROR: role “pm” does not exist
psql:ga_zj_taizhou.sql:1408598: ERROR: role “laoyw” does not exist

解决办法 :
格式:create user 自定义用户名称 superuser;

postgres=# create user root superuser ;

然后\q退出数据库,再实现psql -d your_db -f sql_path
例如:

psql -d mz -f /usr/mydownloads/proj_llmrs.sql

8、忘记postgres用户密码怎么办?

环境:

Ubuntu 16.04
postgres : apt-get install postgresql 9.5版本

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

local all postgres peer

TYPE DATABASE USER ADDRESS METHOD

“local” is for Unix domain socket connections only

local all all peer

IPv4 local connections:

host all all 127.0.0.1/32 md5

IPv6 local connections:

host all all ::1/128 md5

重启postgressql服务。

~$ systemctl restart postgresq

免密码登录

localhost:~$ psql -U postgres -h 127.0.0.1
psql (9.5.12)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type “help” for help.
postgres=#

修改密码并退出

postgres=# alter user postgres with password ‘123’;
ALTER ROLE
postgres=# \q

修改回认证并退出: trust改为md5

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

IPv4 local connections:

host all all 127.0.0.1/32 trust

重启并登陆:

parallels@parallels-vm:~$ systemctl restart postgresql
parallels@parallels-vm:~$ psql -U postgres -h 127.0.0.1
Password for user postgres:
psql (9.5.12)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type “help” for help.

Ubuntu系统

创建新用户

root@ubuntu:~# useradd wang
root@ubuntu:~# passwd wang
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

常见报错 :
没有家目录,新用户登陆错误

root@ubuntu:~# su - wang
No directory, logging in with HOME=/
$

Linux授予某个用户对某个文件夹的读写权限

$ sudo chmod -R 755 /data/data1

$ chown -R user1.user1 1.txt
查看目录的权限
data# ls -l

备份数据
从外网拷贝到本地
scp -r *.sql zhaobsh@192.187.100.1:/data/data1

导入数据
登录数据库
postgres@dbmaser:~$ psql -U wsgjjkzg -d t_gj_tzy < /data/data1/t_gj_tzy.20191029235826.sql

查看导入的数据
su - postgresl
\c GSCloud1903 #切换到GSCloud1903
postgres=# \c t_gj_tzy
You are now connected to database “t_gj_tzy” as user “postgres”.

\c dt+ #查看当前数据库里面的表和拥有者和表大小

清空数据库中所有数据

//删除public模式以及模式里面所有的对象
DROP SCHEMA public CASCADE;
//创建public模式
CREATE SCHEMA public;

清除全表,建议使用truncate

2种方法都只删数据,保留表结构

方法一 ,适用数据量较小的情况

delete from tablename;

方法二,适合删除大量数据,速度快

TRUNCATE TABLE tablename;

若该表有外键,要用级联方式删所有关联的数据

TRUNCATE TABLE tablename CASCADE;

test03=# select * from test;
id | info | crt_time
----±-----±---------
(0 rows)

注意 :

//当表没有其他关系时
TRUNCATE TABLE tablename;
//当表中有外键时,要用级联方式删所有关联的数据
TRUNCATE TABLE tablename CASCADE;

清除所有超过1w条数据的表数据。

SELECT * FROM count_em_all(10000) AS r ORDER BY r.num_rows DESC;

扩展
在 mysql中,只需要执行:

TRUNCATE table_name;

即可,数据会情况,而且自增id也会变回0;

但在 postgresql 则稍有不同,因为 postgresql 的自增id是通过序列 sequence来完成的,

所以情况数据后,还需要还原序列 sequence:

TRUNCATE bigtable, fattable RESTART IDENTITY;

官方文档:https://www.postgresql.org/docs/9.2/static/sql-truncate.html

另一种方式:(因为版本不同,可能命令不同)

truncate table table_name;
alter sequence seq_name start 1;

postgres数据库中删除指定的数据的sql语句

查询数据库中default_table表中的name字段为空的条件

SELECT * from default_table WHERE name is null;

删除数据库中default_table表的name字段为空的数据

DELETE FROM default_table WHERE name is null;

创建索引语句

create index i_jdbc_sql_record_zh01 on t_jdbc_sql_record(c_bh_group,dt_zxsj,N_CHECKSTATUS,C_PSSQL_HASH);
alter table t_jdbc_sql_content add constraint t_jdbc_sql_content_pkey primary key (C_BH);

异步提交和unlogged table

– 异步提交,更改完重启数据库
alter system set synchronous_commit to off;
– unlogged table
create unlogged table t_jdbc_sql_record

create unlogged table t_jdbc_sql_content

POSTGRESQL 数据库导入导出

导入整个数据库

psql -U postgres(用户名) 数据库名(缺省时同用户名) < /data/dum.sql

导出整个数据库
1.导出数据库:方式一:pg_dump -U postgres -f c:\db.sqlpostgis

方式二:pg_dump -Upostgres postgis > c:\db.sql

pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) >/data/dum.sql

导出某个表

pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) -t table(表名) >/data/dum.sql

导入具体表:

psql -d postgis -f c:\ dump.sqlpostgres

压缩方法

一般用dump导出数据会比较大,推荐使用xz压缩

压缩方法 xz dum.sql 会生成 dum.sql.xz 的文件

xz压缩数据倒数数据库方法

xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)

查看postgresql数据库用户系统权限、对象权限的方法

1、查看某用户的系统权限

SELECT * FROM pg_roles WHERE rolname=‘postgres’;

在这里插入图片描述
2、查看某用户的表权限

select * from information_schema.table_privileges where grantee=‘postgres’;

3、查看某用户的usage权限

select * from information_schema.usage_privileges where grantee=‘postgres’;

4、查看某用户在存储过程函数的执行权限

select * from information_schema.routine_privileges where grantee=‘postgres’;

5、查看某用户在某表的列上的权限

select * from information_schema.column_privileges where grantee=‘postgres’;

6、查看当前用户能够访问的数据类型

select * from information_schema.data_type_privileges ;

7、查看用户自定义类型上授予的USAGE权限

select * from information_schema.udt_privileges where grantee=‘postgres’;

工作中常见用法 :

1.查看运行时间长的sql

select pid,datname,usename,client_addr,query_start,now()-query_start as time_run, query from pg_stat_activity
where state=‘active’ order by time_run desc limit 20;

2.查看指定表空间下的表和索引

SELECT c.relname, t.spcname FROM pg_class c left JOIN pg_tablespace t ON c.reltablespace = t.oid WHERE t.spcname = ‘data1tbs’;

默认表空间的话where判断 c.reltablespace=0 或 t.spcname is null

3、查看指定pid需要的锁状态

select pc.relname,pl.* from pg_locks pl left join pg_class pc on pc.relfilenode=pl.relation where pl.pid=13912

4、查看未使用索引

select schemaname,relname,indexrelname,idx_scan from pg_stat_user_indexes where idx_scan=0 and schemaname=‘public’ and indexrelname not like ‘%_pkey’

5、查看指定表的索引

select schemaname,relname,indexrelname,idx_scan from pg_stat_user_indexes where schemaname=‘public’ and relname=‘visited_article’

6、某个pid在等待的锁的持有者

select pl1.*,pl2.pid,pa.usename,pa.query from pg_locks pl1 left join pg_locks pl2 on pl1.transactionid=pl2.transactionid and pl2.granted
left join pg_stat_activity pa on pl2.pid=pa.pid where pl1.pid=21641 and not pl1.granted

7、查看所有锁的状态

select
pg_stat_activity.datname,pg_class.relname,pg_locks.transactionid, pg_locks.mode, pg_locks.granted,
pg_stat_activity.usename,substr(pg_stat_activity.query,1,30), pg_stat_activity.query_start,
age(now(),pg_stat_activity.query_start) as “age”, pg_stat_activity.pid
from pg_stat_activity,pg_locks left
outer join pg_class on (pg_locks.relation = pg_class.oid)
where pg_locks.pid=pg_stat_activity.pid order by query_start limit 100;

8、查看指定schema 里所有的索引大小,按从大到小的顺序排列

select indexrelname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_indexes where schemaname=‘public’ order by pg_relation_size(relid) desc;

9、查询所有表大小,并且按从大到小排序

select relname, pg_size_pretty(pg_relation_size(relid)) as size from pg_stat_user_tables ORDER BY size desc;

10、查询指定模式下面所有表大小,并按表大小排序

select relname, pg_size_pretty(pg_relation_size(relid)) as size from pg_stat_user_tables where schemaname = ‘authevent’ ORDER BY size desc;

–查看DB大小

select pg_size_pretty(pg_database_size(‘ve’));

–查看表大小(不含索引等信息)

select pg_relation_size(‘user’);
select pg_size_pretty(pg_relation_size(‘use’))

–查看每个DB的使用情况(读,写,缓存,更新,事务等)

select * from pg_stat_database

–查看索引的使用情况

select * from pg_stat_user_indexes;

–查看表所对应的数据文件路径与大小

SELECT pg_relation_filepath(oid), relpages FROM pg_class WHERE relname = ‘empsalary’;

–查看表空间大小

select pg_tablespace_size(‘pg_default’);

714 境内采集器

SELECT ip FROM asset_server where is_server=1 and ip not like ‘%163.106.130.%’ and ip not like ‘132.117.354.%’ and idc_id not in(16,9) and ip not IN(‘161.10.84.11’,‘180.132.214.110’)

27 大服务器

SELECT ip FROM asset_server where is_server=1 and (ip like ‘%183.106.110.%’ or ip like ‘122.227.254.%’ or ip IN(‘80.102.214.130’))

24 境外采集器

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

or ip IN(‘80.102.214.130’))

24 境外采集器

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-OIZdhgEh-1712906073974)]
[外链图片转存中…(img-dRnfUW3c-1712906073975)]
[外链图片转存中…(img-cW3wLUTY-1712906073976)]
[外链图片转存中…(img-03M58NMR-1712906073976)]
[外链图片转存中…(img-04m7j0Cg-1712906073977)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-3l9Hbnnq-1712906073978)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值