醉经遇到一件奇怪的事件,postgers数据库的默认用户postgres被人家革职了。原本的默认‘超级用户’权限没了,导致在执行postgis 扩展的时候提示HINT: Must be superuser to create this extension.
1、登录postgres查找问题
于是登录到数据库一查究竟(注意psql 不带-U 参数会默认使用当前电脑的登录用户,如 Administrator) 切,为什么没有‘超级’权限,这家伙是怎么了,看下边多了一个‘posgresql_sys’的用户,他却拥有了这个‘超级用户’的权限,难道是发生了谋朝篡位,喧宾夺主了?
不管了现在要紧的是恢复主权
postgres => alter user postgres with superuser;
错误: 只有超级用户能修改超级用户
想使用这个命令简单的完成权限配置,可是并不能成功
2、 登录postgresql_sys
于是想到了登录postgresql_sys来使用这个用户修改权限
但是在使用这个登录的使用会提示密码错误
3、重置密码
现在想登录就必须重置密码了,于是找到了一个https://blog.csdn.net/qq_36196879/article/details/96288907根据这个博客 将postgres 安装目录下的 data>pg_hba.conf 文件中的md5都修改为了trust
4、psql -U 数据库 <dbname> 不存在
修改王pg_hba.conf 后执行登录提示,数据库不存在?
于是顺藤摸瓜,找到了这个https://cloud.tencent.com/developer/ask/26463 根据这个,修改登录方式
5、修改权限
登录成功后,就可以为postgres 用户修改权限了
咦,终于成功了 看postgres 终于有超级用户的权限了
6、将pg_hba.conf还原
现在权限修改成功,我们将pg_hba.conf配置还原
然后 WIN+R 输入 services.msc 找到postgres 重启一下
7、create extension postgis
再次登录psql, 链接数据库执行create extension postgis;
终于操作成功了
8、数据库操作命令
这里顺便记录一些数据库操作命令
- 1、列举数据库:\l
- 2、选择数据库:\c 数据库名
- 3、查看该某个库中的所有表:\dt
- 4、切换数据库:\c interface
- 5、查看某个库中的某个表结构:\d 表名
- 6、查看某个库中某个表的记录:select * from apps limit 1;
- 7、显示字符集:\encoding
- 8、退出psgl:\q
|