记录下在Centos7.6 安装PostgreSQL数据库,版本10.12的过程,第一次装,遇到的坑太多了,网上教程坑也多,有的版本不一样方法不一样。花了半天时间…
背景:
内网服务器,搭了个sonarqube代码审计系统,用的docker,docker跑的postgresql数据库(有坑),数据库出过两次问题,不用docker了,老大说要本地装,今天收到命令,我也没装过,中午就开搞,搞到了晚上……大概装、删、解决各种坑,晚上又改数据目录几个小时。。
安装参考:https://www.cnblogs.com/Crise2018/p/11568328.html
修改/data路径参考:http://blog.itpub.net/29654823/viewspace-2147325/
一、安装
1、查看自己的系统是否安装了postgresql数据库
命令如下: rpm -qa | grep postgresql (因为本地有安装过,很多安装包)
查看: rpm -qal | grep postgresql 位置
删除 yum remove postgresql*
2、开始安装
从postgreSQL源网址下载安装yum源。https://yum.postgresql.org/repopackages.php#pg10
选择centos的,右键复制链接地址,服务器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
安装服务:yuminstallpostgresql10-contrib postgresql10-server -y
4个包,下载的慢,10分钟吧。
3、解决docker中数据库问题
因为docker,postgres占用了5432端口,不删掉没发用。所以现在开始学习docker,docker容器,里面有镜像。
docker images #可以列出当前服务器上所有存在的docker镜像
就是这个postgres,但要删掉前,先要停掉他。删除之前要确认此镜像已经没有被容器在使用,如果存在正在运行的docker容器,删除会报错“Error: container_delete: Impossible to remove a running container,please stop it first”
docker stop (id) #停止
docker rmi (id)#删掉,docker rmi 容器id来删除一个镜像,如图所示,因为镜像是采用分层存储,所以删除时,显示很多tag。
/usr/pgsql-10/bin/postgresql-10-setup initdb #安装后初始化
二、启动服务!
好,还很顺利,起服务!
sudo systemctl start postgresql-10 #起服务,和service postgresql-10 start 一样
sudo systemctl enable postgresql-10 service #开机自启动
sudo systemctl status postgresql-10(service postgresql-10 status) #查看状态
Postgresql安装目录在/usr/pgsql-10,
Postgresql的数据目录会放在/var/lib/pgsql/版本号/data目录下。(后面会改/data)
三、登录
1、登录
su - postgres #切换到postgres用户下
psql #登陆数据库
ALTER USER postgres WITH PASSWORD <password>;#修改密码
退出:\q
然后exit
\l 用于查看已经存在的数据库
CREATE DATABASE dbname; #创建数据库
Drop database dbname; #删除数据库
四、修改数据目录
安装完成了,但是我们要改数据目录,因为默认的/var目录空间不够,要放到data下。
1)在数据库软件安装之后,初始化数据库时候,可以指定初始化时创建的数据库的默认文件路径,(如果初始化时这么做就好了!!!!)
指定数据库存放位置和编码方式,初始化数据库:
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
这样初始化之后,再修改配置文件postgresql.conf为修改之后的数据文件路径,就能保证以后的数据文件也在这个路径下了。
2)如果是已经初始化好了,再修改数据文件路径的,如下过程:
找到配置文件查看当前数据存储路径在哪
postgres=# SHOW data_directory;
/var/lib/pgsql/10/data
停掉PGSQL
sudo service postgresql-10 stop
拷贝原来的数据路径到新的路径下
sudo rsync -av /var/lib/pgsql /data/
设置用户和权限
sudo chown -R postgres:postgres /data/psql
sudo chmod 700 /data/psql
将配置文件的数据存储路径改成新的
cd /data/pgsql/10/datavi
postgresql.conf
data_directory=‘/data/psql/10/data’ #最重要,确实改成自己的data路径才成功。
再启动就行了
sudo service postgresql-10 start