首先安装对应版本的包:
yum install https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y
yum list | grep postgresql
yum install centos-release-scl
yum install postgresql13-devel postgresql13-contrib postgresql13-server -y
安装后先初始化postgres数据库
/usr/pgsql-13/bin/postgresql-13-setup initdb
启动数据库
sudo systemctl start postgresql-13
添加到开机启动
sudo systemctl enable postgresql-13.service
修改postgres数据库密码
su - postgres
psql
ALTER USER postgres WITH PASSWORD '123456';
\q
修改监听和运程连接数据库
修改/var/lib/pgsql/13/data目录下的pg_hba.conf
cd /var/lib/pgsql/13/data
vi pg_hba.conf
修改IPv4 一行内容如下:
IPv4 local connections:
host all all 0.0.0.0/0 trust
修改postgresql.conf:
vi postgresql.conf
//修改监听一节如下:
# - Connection Settings -
listen_addresses = ‘*’
port = 5432
重启pg服务生效
systemctl enable postgresql-13
systemctl start postgresql-13
服务器配置在 postgresql.conf中,修改配置后需要 使用 pg_ctl restart -D dir_db 命令重启数据库;
此外,我们也可以在登陆数据库后修改配置项:使用 SELECT * FROM pg_settings WHERE name = 'config'; 查询当前配置项,再使用 UPDATE 语句更新配置。但有些配置如内存分配策略是只在当前 session 生效的,全局生效需要在配置文件中修改,再重启服务器。
我们可以修改配置并用客户端验证 SQL 语句的优化,使用 \timing on 开启查询计时,使用 EXPLAIN ANALYSE 语句 分析查询语句效率。 下面介绍两个已实践过的配置参数:
shared_buffers:用于指定共享内存缓冲区所占用的内存量。它应该足够大来存储常使用的查询结果,以减少物理I/O。但它也不能太大,以避免系统 内存swap 的发生, 一般设置为系统内存的 20%。
work_mem:一个连接的工作内存,在查询结果数据量较大时,此值如果较小的话,会导致大量系统 I/O,导致查询速度急剧下降,如果你的 explain 语句内 buffer 部分 read数值过大,则表示工作内存不足,需要调整加此参数。但此值也不能太大,需要保证 work_mem * max_connections + shared_buffers + 系统内存 < RAM,不然同样可能会导致系统 内存swap。
这样,PgSQL 就能作为一个正常的关系型数据使用了。