linux下postgres安裝踩坑
????坑很多,在windows上用的時候一點沒感覺,在linux差點把我人整麻
????首先安裝就去官網(wǎng)就行,用apt裝,它會先讓你注冊pkg信息,然后apt update一下,就能裝。這一步都沒什么問題
????裝完一般情況下,至少在windows中,psql就能進去,但是linux不行,它會告訴你TCP/IP的監(jiān)聽有問題
????我的理解是,首先在安裝的時候,postgres會創(chuàng)建一個角色叫postgres,你切到這個角色,用psql是能進去的
????如果你不能進去,就查查你的postgresql service是不是打開了,沒開就用systemctl start postgresql打開
????然后切換角色sudo su - postgres,進去后,psql是大概率能進postgres交互界面的
????然后創(chuàng)建你自己的用戶,隨便創(chuàng)建,比如我創(chuàng)建一個叫araumi的用戶,密碼就是aruami,順便把數(shù)據(jù)也給創(chuàng)建了
????創(chuàng)建后可能在posgres角色下,用psql -U araumi -W也是進不去的,比如我本機的角色叫kodama,我在kodama下創(chuàng)建的araumi用戶,理論上這個用戶是隸屬kodama的,所以就造成了conflict,會進不去
????進不去就看日志,一般情況下日志在/var/log/postgresql下,你tail一下就能看見
????我這里想用araumi進trading數(shù)據(jù)庫,進不去,可能原因就是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那一行的注釋去掉
????同時可以看看監(jiān)聽port,它可能很妖,監(jiān)聽的不是5432,是5433或者5434,改成5432,同樣方法再用systemctl重啟postgresql,就能用dsn連了
????當然在kodama角色下用psql不指定用戶的情況下是不能進的,因為它默認把你的角色名當成用戶名,不匹配就會顯示角色不存在,所以只能psql -U