CentOS安装PotsgreSQL11及简单配置过程记录

版权声明:转载请注明来源 https://blog.csdn.net/qq_38591756/article/details/84326533

根据搜集的资料安装测试并在安装测试过程中整理的文档,如有不足希望不吝赐教。


因为公司一个项目可能使用PotsgreSQL作为数据库,因此领导领导安排先初步了解下其安装配置以及简单的备份,以下是对安装过程的简单记录。

这个是备份记录:《CentOS7中PotsgreSQL11双机备份简单配置过程记录》


目录

一、安装

二、连接PostgreSQL数据库

1.切换postgres用户

2.列出所有的数据库

3.退出数据库

三、PostgreSQL数据库目录

四、PostgreSQL简单配置

1.修改监听的ip和端口

2.修改数据库log相关的参数

3.内存参数的配置

五、配置链接host

1.修改pg_hba.conf文件

六、其他


一、安装

安装部分来自官网文档,地址:https://www.postgresql.org/download/linux/redhat/

本次安装环境为:centos7(×86_64) + PostgreSQL11、

Install the repository RPM:(1、2、3步可以添加-y参数)

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

Install the client packages:

yum install postgresql11

Optionally install the server packages:

yum install postgresql11-server

Optionally initialize the database and enable automatic start:

/usr/pgsql-11/bin/postgresql-11-setup initdb

设置开机启动。启动以及查看状态:

systemctl enable postgresql-11

systemctl start postgresql-11

systemctl status postgresql-11

二、连接PostgreSQL数据库

1.切换postgres用户

并连接数据库:su - postgres

2.列出所有的数据库

3.退出数据库

三、PostgreSQL数据库目录

1.默认位置

当前位置下data目录为数据库目录。使用pwd查看当前目录:

查看data目录:

四、PostgreSQL简单配置

PostgreSQL数据库的配置主要是通过修改数据目录下的postgresql.conf文件来实现

1.修改监听的ip和端口

使用postgresql用户连接数据库后,进入到/var/lib/pgsql/data目录下,编辑postgresql.conf文件:

根据实际修改,修改完成后需要重启数据库才能生效:

2.修改数据库log相关的参数

日志收集,一般是打开的:

日志目录,一般使用默认值:

只保留一天的日志,进行循环覆盖

3.内存参数的配置

共享内存的大小,用于共享数据块。如果你的机器上有足够的内存,可以把这个参数改的大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取。

单个SQL执行时,排序、hash json所用的内存,SQL运行完后,内存就释放了。

五、配置链接host

1.修改pg_hba.conf文件

同样的,在postgres用户下,修改pg_hba.conf文件,在文件最后添加需要允许访问的主机ip:

vim /var/lib/pgsql/11/data/pg_hba.conf

上面为允许任何主机访问,或者修改为指定ip即可,例如:host all all 172.17.0.9/32 trust

六、其他

1.json字段

之前使用sqlservr和mysql比较多,可以存json格式数据但基本是当作字符串处理,而postgresql可以直接处理json格式数据,将字段作为条件查询:

假设有字段msg,类型为json,保存数据如下:

{"ip": "172.17.0.84","user": "postgres","password": "postgres"}

{"ip": "172.17.0.86","user": "postgres","password": "postgres"}

 

如果要查询ip为172.17.0.84的数据,可以使用下面的语句:

select * from tablename where (msg->>'ip')::text = '172.17.0.84';

这里只是稍稍尝试了一下,个人觉得这个在一些时候很实用,比如某个实体的属性,可以使用json格式保存,这样会少很多字段,并且属性扩展时的数据库成本几乎可以忽略。不知道这么理解是不是正确。


END

猜你喜欢

转载自blog.csdn.net/qq_38591756/article/details/84326533