?????? 記錄下在Centos7.6 安裝PostgreSQL數(shù)據(jù)庫,版本10.12的過程,第一次裝,遇到的坑太多了,網(wǎng)上教程坑也多,有的版本不一樣方法不一樣?;税胩鞎r(shí)間…
背景:
內(nèi)網(wǎng)服務(wù)器,搭了個(gè)sonarqube代碼審計(jì)系統(tǒng),用的docker,docker跑的postgresql數(shù)據(jù)庫(有坑),數(shù)據(jù)庫出過兩次問題,不用docker了,老大說要本地裝,今天收到命令,我也沒裝過,中午就開搞,搞到了晚上……大概裝、刪、解決各種坑,晚上又改數(shù)據(jù)目錄幾個(gè)小時(shí)。。
安裝參考:https://www.cnblogs.com/Crise2018/p/11568328.html
修改/data路徑參考:http://blog.itpub.net/29654823/viewspace-2147325/
一、安裝
1、查看自己的系統(tǒng)是否安裝了postgresql數(shù)據(jù)庫
命令如下:?rpm -qa | grep postgresql???????? (因?yàn)楸镜赜邪惭b過,很多安裝包)
查看:?rpm -qal | grep postgresql? 位置
刪除 yum?remove?postgresql*

2、開始安裝
從postgreSQL源網(wǎng)址下載安裝yum源。https://yum.postgresql.org/repopackages.php#pg10
選擇centos的,右鍵復(fù)制鏈接地址,服務(wù)器yum……

yum install?https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
菜鳥上也有apt方法:https://www.runoob.com/postgresql/linux-install-postgresql.html
2.1查看下載的包,
yumlist |grep postgresql
安裝服務(wù):yuminstallpostgresql10-contrib postgresql10-server -y
4個(gè)包,下載的慢,10分鐘吧。



3、解決docker中數(shù)據(jù)庫問題
因?yàn)閐ocker,postgres占用了5432端口,不刪掉沒發(fā)用。所以現(xiàn)在開始學(xué)習(xí)docker,docker容器,里面有鏡像。
docker images??? #可以列出當(dāng)前服務(wù)器上所有存在的docker鏡像
就是這個(gè)postgres,但要?jiǎng)h掉前,先要停掉他。刪除之前要確認(rèn)此鏡像已經(jīng)沒有被容器在使用,如果存在正在運(yùn)行的docker容器,刪除會(huì)報(bào)錯(cuò)“Error: container_delete: Impossible to remove a running container,please stop it first”

docker stop (id) #停止
docker rmi (id)#刪掉,docker rmi 容器id來刪除一個(gè)鏡像,如圖所示,因?yàn)殓R像是采用分層存儲(chǔ),所以刪除時(shí),顯示很多tag。

/usr/pgsql-10/bin/postgresql-10-setup initdb? #安裝后初始化
二、啟動(dòng)服務(wù)!
好,還很順利,起服務(wù)!
sudo systemctl start postgresql-10? #起服務(wù),和service postgresql-10 start 一樣
sudo systemctl enable postgresql-10 service? #開機(jī)自啟動(dòng)
sudo systemctl status postgresql-10(service postgresql-10 status) #查看狀態(tài)

Postgresql安裝目錄在/usr/pgsql-10,
Postgresql的數(shù)據(jù)目錄會(huì)放在/var/lib/pgsql/版本號/data目錄下。(后面會(huì)改/data)
三、登錄
1、登錄
su - postgres #切換到postgres用戶下
psql #登陸數(shù)據(jù)庫
ALTER USER postgres WITH PASSWORD <password>;#修改密碼

退出:\q
然后exit

\l 用于查看已經(jīng)存在的數(shù)據(jù)庫
CREATE DATABASE dbname;? #創(chuàng)建數(shù)據(jù)庫
Drop database dbname;??#刪除數(shù)據(jù)庫

四、修改數(shù)據(jù)目錄
安裝完成了,但是我們要改數(shù)據(jù)目錄,因?yàn)槟J(rèn)的/var目錄空間不夠,要放到data下。
1)在數(shù)據(jù)庫軟件安裝之后,初始化數(shù)據(jù)庫時(shí)候,可以指定初始化時(shí)創(chuàng)建的數(shù)據(jù)庫的默認(rèn)文件路徑,(如果初始化時(shí)這么做就好了!?。。。?/p>
指定數(shù)據(jù)庫存放位置和編碼方式,初始化數(shù)據(jù)庫:
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
這樣初始化之后,再修改配置文件postgresql.conf為修改之后的數(shù)據(jù)文件路徑,就能保證以后的數(shù)據(jù)文件也在這個(gè)路徑下了。
2)如果是已經(jīng)初始化好了,再修改數(shù)據(jù)文件路徑的,如下過程:
找到配置文件查看當(dāng)前數(shù)據(jù)存儲(chǔ)路徑在哪
postgres=# SHOW data_directory;
/var/lib/pgsql/10/data
停掉PGSQL
sudo service postgresql-10 stop
拷貝原來的數(shù)據(jù)路徑到新的路徑下
sudo?rsync?-av?/var/lib/pgsql?/data/
設(shè)置用戶和權(quán)限
sudo chown -R postgres:postgres /data/psql
sudo chmod 700 /data/psql
將配置文件的數(shù)據(jù)存儲(chǔ)路徑改成新的
cd /data/pgsql/10/datavi
postgresql.conf
data_directory=‘/data/psql/10/data’??? #最重要,確實(shí)改成自己的data路徑才成功。
再啟動(dòng)就行了
sudo service postgresql-10 start
