如何实现Postgresql数据库的重装与postgres密码重置
发布时间:2025-05-23 18:03:11 发布人:远客网络
一、如何实现Postgresql数据库的重装与postgres密码重置
相信如果你在重新安装或者升级Postgresql数据库的时候都需要你输入在第一次安装时候的密码,这个密码往往我们都会忘记,那么万一忘记了该咋办?难道真就不能安装了?答案当然是否定的。在项目中,本人就遇到过这样的情况,一番摸索过后发现终于发现其中的奥秘,首先,Postgresql安装时,会往用户组中添加一个postgresql用户,而这个用户就是阻止你密码验证不能通过的罪魁祸首,好吧,将其删除,再试试呢,成功了。别急,有些时候,你在安装的时候还会报一些错误,我同事就遇到此类情况,最后发现Postgresql还会在当前用户下记录一下信息,比如管理工具的默认用户名和密码等信息,密码是不加密的哦!!以我的Win 7 32bit Enterprise version为例,我的用户为:Abc_Zhou,则在C:\Users\abc_zhou\AppData\Roaming folder下看到有postgresql,删掉吧,好了,至此,你将能够完全安装成功了。
有时候在不知道密码的情况下如何能够使用数据库呢?当然前提是你知道用户名。这个是比较纠结的问题,用以上方法重装?显然不行,谁能保证我的数据呢。别急,咱们也有办法,首先,来到数据库的安装目录data文件夹下面,我的是9.0.4 version,路径为(PostgreSQL\9.0\data),然后找到pg_hba.conf文件,在最下放有一下几句话:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
好吧,将所有的md5修改称为trust,重启数据库服务,再去界面登录看看,记住不要输入密码哦。当你登录成功了之后难道想改个密码还不容易?
Alter user'postgres' with password'123456';
至此,重新把method改回md5吧,重启服务,使用刚刚修改的密码登录,果断成功了。
好了,到此基本上完成我们的全部需求了,可是,有时候我们又不想改掉原本的密码,或许系统中还会有其他软件使用此用户呢。好,那还不简单,重新创建一个用户不就得了,不错好方法。但是我要告诉你一个更绝的办法,就是如果有人在管理工具中登录并保存过密码,那你就可以通过以下文件直接找出密码:C:\AllUsers\abc_zhou\AppData\postgresql中的pgpass.conf文件(机器环境同上),记事本打开就ok了,是不是可以看到密码了,就是这么简单。转载,仅供参考。
二、怎么在swiftui中连接postgresql实现增删改查
在postgres中当我们执行:drop/alter database XXX的时候的时候,可能会提示:
ERROR: database"testdb" is being accessed by other users
DETAIL: There are 3 other sessions using the database.
这个意思是说,删除数据库失败,因为这里还有3个链接连接到该数据库上,PostgreSQL在有进程连接到数据库时,对应的数据库是不运行被删除的。那么怎么办呢?答案就是:断开连接到这个数据库上的所有链接,再删除数据库。怎么断开呢?在PostgreSQL 9.2及以上版本,执行下面的语句:
SELECTpg_terminate_backend(pg_stat_activity.pid)
WHEREdatname='testdb'ANDpid<>pg_backend_pid();
执行上面的语句之后,在执行DROP操作,就可以删除数据库了。
pg_terminate_backend:用来终止与数据库的连接的进程id的函数。
pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。
pg_backend_pid():是一个系统函数,获取附加到当前会话的服务器进程的ID。
三、kali2.0 msfconsole怎么连接数据库
alter user postgres with password'admin';12
注意2:分号!!!!一定要带上分号”;”。
3、修改linux系统的postgres用户的密码(密码与数据库用户postgres的密码相同)
root@kali:~# sudo passwd-d postgres
root@kali:~# sudo-u postgres passwd
4、修改PostgresSQL数据库配置实现远程访问
root@kali:~# vi/etc/postgresql/9.4/main/postgresql.conf1
更改#listen_addresses='localhost'为listen_addresses='*'
更改#password_encryption= on为password_encryption= on
root@kali:~# vi/etc/postgresql/9.4/main/pg_hba.conf1
# to allow your client visiting postgresql server
root@kali:~# service postgresql restart 1
注意1:”#”号,一定要把”#”删除掉。
注意2:在vi编辑模式下点击键盘字母a是进入编辑模式,编辑完成后点击“esc”退出编辑模式然后在最下方输入”:wq”保存并退出。
root@kali:~# psql-U postgres-h 127.0.0.1
SSL连接(协议: TLSv1.2,加密:ECDHE-RSA-AES256-GCM-SHA384,二进制位: 256,压缩比:关闭)
postgres=# create user msf with password'admin' nocreatedb;
postgres=# create database msf with owner=msf;
postgres=#\q123456789101112
注意1:还是要注意分号!!!没有分号命令就无法执行。
注意2:注意复制的时候”“符号问题。
注意3:user后面是用户名,password后面是用户名对应的密码。
注意4:命令执行后有返回结果才是执行成功了。
[*] postgresql selected, no connection
msf> db_connect msf:admin@127.0.0.1/msf
[*] Rebuilding the module cache in the background...
[*] postgresql connected to msf
db_connect-y/usr/share/metasploit-framework/config/database.yml1
注意1:”msf:admin”这个是步骤5中的
“create user msf with password‘admin’ nocreatedb;”所建立的。
注意2:”[*] postgresql connected to msf”这个是说明以链接成功数据库。
自动连接可以通过配置文件/usr/share/metasploit-framework/config/database.yml完成,内容可以通过复制database.yml.example并修改内容来完成设置。
root@kali:/usr/share/metasploit-framework/config#cp database.yml.example database.yml
root@kali:/usr/share/metasploit-framework/config#vi database.yml
root@kali:/usr/share/metasploit-framework/config#cat database.yml123
主要改database、password、host这三个值
重新执行msfconsole即可直接链接数据库