当前位置: 首页 > 热点 > 正文

linux下postgres安装踩坑

2023-06-25 02:22:02 来源:哔哩哔哩

坑很多,在windows上用的时候一点没感觉,在linux差点把我人整麻

首先安装就去官网就行,用apt装,它会先让你注册pkg信息,然后apt update一下,就能装。这一步都没什么问题


(资料图片)

装完一般情况下,至少在windows中,psql就能进去,但是linux不行,它会告诉你TCP/IP的监听有问题

我的理解是,首先在安装的时候,postgres会创建一个角色叫postgres,你切到这个角色,用psql是能进去的

如果你不能进去,就查查你的postgresql service是不是打开了,没开就用systemctl start postgresql打开

然后切换角色sudo su - postgres,进去后,psql是大概率能进postgres交互界面的

然后创建你自己的用户,随便创建,比如我创建一个叫araumi的用户,密码就是aruami,顺便把数据也给创建了

创建后可能在posgres角色下,用psql -U araumi -W也是进不去的,比如我本机的角色叫kodama,我在kodama下创建的araumi用户,理论上这个用户是隶属kodama的,所以就造成了conflict,会进不去

进不去就看日志,一般情况下日志在/var/log/postgresql下,你tail一下就能看见

我这里想用araumi进trading数据库,进不去,可能原因就是araumi所属角色不是postgres而是我的本机角色kodama

所以就去改pg_hba.conf,这玩意儿如果找不到就用pg_lsclusters查一下,一般情况下在/etc/postgresql/14/main下

进去改,给它全trust了,之前是peer

改完systemctl restart postgresql,再psql -U araumi -W,应该就能进去了,在kodama角色下也应该能进去

然后尝试用dsn的方式连接,比如写出来是这样的

它如果失败,那么大概率说明,你得去postgresql.conf里面看看了

里面可以改data_directory,这个改的时候注意下权限,改完可能需要initdb一下。不过我没改,上次改的时候就出了一大堆麻烦

去postgresql.conf里面,把localhost那一行的注释去掉

同时可以看看监听port,它可能很妖,监听的不是5432,是5433或者5434,改成5432,同样方法再用systemctl重启postgresql,就能用dsn连了

当然在kodama角色下用psql不指定用户的情况下是不能进的,因为它默认把你的角色名当成用户名,不匹配就会显示角色不存在,所以只能psql -U

标签:

下一篇:最后一页
上一篇:【环球速看料】蔚来全新ES8即将交付,采用全新降价增配销售方案