在打开msfconsole的时候发现了一个问题,就是我的postgresql已经打开了,连接不上,在网上找了很多的方法都没用,然后我将我的报错给GTP看来,但是它让我手动连接数据库,还是没用
警告: database "msf" has a collation version mismatch DETAIL: The database was created using collation version 2.37, but the operating system provides version 2.38.
这个报错说的是数据库“msf”有一个排序规则版本不匹配的详细信息:数据库是使用排序规则版本2.37创建的,但是操作系统提供版本2.38。总的来说就是版本不一致导致的问题
那么系统既然给了报错说是排序规则版本不匹配,那么我们就将版本变成一样的不就行了吗
第一步查看Metasploit版本:可以在Metasploit的命令行中输入以下命令来查看当前安装的版本
第二部查看PostgreSQL版本:登录到PostgreSQL数据库服务器,并执行以下SQL查询来获取版本信息
第三步更新或升级Metasploit:
直接使用
sudo apt-get update
sudo apt-get install postgresql-16-repack
第四步删除旧的版本,修改新版本的端口号,当然如果你的数据库上有资料的话建议先备份一下,因为的上面的东西都不重要,就不备份了,但是方法也给你们,这是我在GPT上找的
恢复
msfdb reinit 执行完这个命令后可能还会有报错,这个是正常的,因为现在我的系统上有两个PostgreSQL,而我们的PostgreSQL是使用5432端口的,等下是要删掉旧的版本。
现在我们要做的就是查看一下PostgreSQL使用的是那个端口,并且确定是否在云行
已经知道了端口号,那现在就要将PostgreSQL服务停掉
将服务停掉以后现在要做的就是将旧的版本删除
删除以后我们再重启服务,查看一下5432端口是否还在使用如果没有那么我们现在要做的就是将更新后的PostgreSQL中配置文件的端口修改一下
将端口号修改为5432就行了
最好再重启服务
看现在连报错都没了,这样就弄好了
进入msfconsole后先查看状态,然后启动数据库