简要描述
前置条件(root下操作)
安装PostgreSQL12
注意
简要描述
简单安装Postgres的操作步骤
前置条件(root下操作)
如果已存在yum安装的postgresql,提供以下卸载方式
# 停止postgresql,此处为注册了服务的停止方式,12版本
systemctl stop postgresql-12
# 卸载 包含postgresql名的程序包
yum remove postgresql*
# 删除postgres用户及其对应的用户目录(/home/postgres)
userdel -r postgres
# 检查是否存在 /usr/psqlXXX文件夹,有的话删除,例如
rm -rf /usr/pgsql-12
创建用户及用户组
# 创建postgres用户组
groupadd postgres
# 创建postgres用户,用户位于postgres组内
useradd -g postgres postgres
# 为postgres用户设置密码
passwd postgres
安装部分依赖(一般是没有的)
yum install gcc
yum install readline-devel.x86_64
yum install zlib-devel.x86_64
安装PostgreSQL12
使用postgres用户管理PostgreSQL
# 切换用户
su postgres
# 回到用户目录
cd ~
下载postgres12源码包(/home/postgres/postgresql-12.1.tar.gz)
wget -c https://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gz
解压到当前路径下(/home/postgres/postgresql-12.1)
tar -zxvf postgresql-12.1.tar.gz
配置及安装
# 新建PostgreSQL安装路径下的文件夹(/home/postgres/postgresql)
mkdir postgresql
# 进入解压后的源码文件夹(/home/postgres/postgresql-12.1)
cd postgresql-12.1
# 检查、并配置(--prefix=/home/postgres/postgresql 为配置postgreSQL的安装路径)
./configure --prefix=/home/postgres/postgresql
# 编译及安装
make && make install
配置环境变量
# 切换到用户根目录下(/home/postgres)
cd ~
# 编辑 .bash_profile
vi .bash_profile
# 修改为
# 新增
PGHOME=/home/postgres/postgresql
PATH后追加 $PGHOME/bin
例如:PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
# 保存,退出(命令模式下Esc)
# 输入: wq! Enter(回车)
# 重载.bash_profile
source .bash_profile
初始化postgreSQL
# /home/postgres/PGDATA为postgres数据文件的存放路径
initdb -D /home/postgres/PGDATA
--with-segsize 更改表和索引的最大值大小。
[postgres@localhost ~]$ initdb -D /home/postgres/PGDATA
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
creating directory /home/postgres/PGDATA ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... PRC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /home/postgres/PGDATA -l logfile start
[postgres@localhost ~]$
启动
# /home/postgres/PGDATA为数据文件存放路径,里面也有一些配置文件
pg_ctl -D /home/postgres/PGDATA -l logfile start
[postgres@localhost PGDATA]$ ls -lrt
total 52
-rw------- 1 postgres postgres 3 Apr 30 13:57 PG_VERSION
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_twophase
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_tblspc
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_stat_tmp
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_stat
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_snapshots
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_serial
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_replslot
drwx------ 4 postgres postgres 36 Apr 30 13:57 pg_multixact
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_dynshmem
drwx------ 2 postgres postgres 6 Apr 30 13:57 pg_commit_ts
-rw------- 1 postgres postgres 26728 Apr 30 13:57 postgresql.conf
-rw------- 1 postgres postgres 88 Apr 30 13:57 postgresql.auto.conf
-rw------- 1 postgres postgres 1636 Apr 30 13:57 pg_ident.conf
-rw------- 1 postgres postgres 4760 Apr 30 13:57 pg_hba.conf
drwx------ 2 postgres postgres 18 Apr 30 13:57 pg_xact
drwx------ 3 postgres postgres 60 Apr 30 13:57 pg_wal
drwx------ 2 postgres postgres 18 Apr 30 13:57 pg_subtrans
drwx------ 2 postgres postgres 18 Apr 30 13:57 pg_notify
drwx------ 2 postgres postgres 4096 Apr 30 13:57 global
drwx------ 5 postgres postgres 41 Apr 30 13:57 base
drwx------ 4 postgres postgres 68 Apr 30 13:57 pg_logical
[postgres@localhost PGDATA]$
停止
pg_ctl -D /home/postgres/PGDATA -l logfile stop
重启
pg_ctl -D /home/postgres/PGDATA -l logfile restart
查看状态
pg_ctl -D /home/postgres/PGDATA -l logfile status
注意
postgreSQL,不修改配置文件,默认是只监听本地、只允许本地访问数据库
在数据文件夹内
pg_hba.conf
配置允许访问的IP及postgres用户
允许任意IP通过密码访问postgres的任意用户
host all all 0.0.0.0/0 md5
postgresql.conf
配置监听的IP范围等
监听任意IP
listen_addresses = '*'
重新加载修改后的pg_hba.conf文件
使用psql客户端
postgres=# SELECT pg_reload_conf();
使用pg_ctl命令(PG内置命令)
pg_ctl reload
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq1130207965/article/details/103399540