Title

Cenots7 离线安装部署PostgreSQL

PostgreSQL源码包下载并复制

PostgreSQL源码包下载

访问PostgreSQL官网:https://www.postgresql.org/ftp/source/

选择所需版本进行下载,本次下载安装版本为 v14.5

复制源码包至服务器

使用SSH终端工具,远程连接服务器,并使用终端工具提供的上传工具,把postgresql-14.5.tar.gz 上传至服务器 /home/postgres14.5 文件夹下

建目录文件夹的命令

[root@localhost local]# mkdir -p /home/postgres14.5

基于PostgreSQL源码安装

切换到源码目录

[root@localhost local]# cd /home/postgres14.5

解压gz

[root@localhost postgres14.5]# gunzip postgresql-14.5.tar.gz

解压tar

[root@localhost postgres14.5]# tar -xf postgresql-14.5.tar

检查环境 指定安装路径

检查环境,指定安装目录和服务端口

[root@localhost postgresql14.5]# cd postgresql-14.5
# 安装位置由 --prefix=/usr/local/pgsql-14.5中指定,端口号由 --with-pgport=5435 指定
[root@localhost postgresql14.5]# ./configure --prefix=/usr/local/pgsql-14.5 --with-pgport=5435

注意:使用configure脚本检查,无错误或警告提示方可进行下一步编译操作,若有错误或警告提示需根据提示进行相关操作。

安装时出现:configure:error:readline library not found

要安装 readline , readline-dev 开发包,要么使用 --without-readline 选项关闭 readline 功能。

# readline 也就是命令行编辑,关闭的话,你直接用psql 就不能编辑命令行,如果输错指令,不能回滚命令历史记录,只能手工重新输入。
yum install readline;
yum install readline-dev;

编译

[root@localhost postgresql-14.5]# make

安装

[root@localhost postgresql-14.5]# make install

postgresql的配置

创建用户和组

创建组

[root@localhost ~]# groupadd postgres

创建用户并加入组

[root@localhost pgsql-14.5]#useradd -g postgres postgres

创建数据库库文件存储目录、给postgres赋予权限

创建数据库库文件存储目录data

[root@localhost pgsql-14.5]# mkdir -p /run/media/postgres/data

data目录授权给postgres.postgres

[root@localhost pgsql-14.5]# chown postgres.postgres /run/media/postgres/data

初始化数据库目录

切换用户

[root@localhost pgsql-14.5]# su postgres

初始化数据 -D指定初始化创建的数据库的文件路径

[postgres@wc-ckg-99-2 root]$ /usr/local/pgsql-14.5/bin/initdb -D /run/media/postgres/data

红框中标注为postgres14.5的启动方式

/usr/local/pgsql-14.5/bin/pg_ctl -D /run/media/postgres/data -l logfile start

启动停止postgres14.5

启动

切换用户 PG是禁止使用超级管理员来运行该命令的

[root@localhost pgsql-14.5]# su postgres

启动数据库

# 启动
[postgres@wc-ckg-99-2 root]$ /usr/local/pgsql-14.5/bin/pg_ctl -D /run/media/postgres/data -l logfile start
# 停止
[postgres@wc-ckg-99-2 root]$ /usr/local/pgsql-14.5/bin/pg_ctl -D /run/media/postgres/data -l logfile stop
# 重启
[postgres@wc-ckg-99-2 root]$ /usr/local/pgsql-14.5/bin/pg_ctl -D /run/media/postgres/data -l logfile restart

执行启动命令权限不够

编辑sudoers配置文件 ,按下图红框所示,给postgres用户添加提升权限的配置

[root@localhost bin]# vi /etc/sudoers

强行停止后无法启动

删除运行目录 /run/media/postgres/data 下的 postmaster.pid 文件

修改管理员密码

psql命令目录:/usr/local/pgsql-14.5/bin

# 在/ usr / bin中创建一个postgre14.5版本对应的psql链接
[root@localhost bin]# ln -s /usr/local/pgsql-14.5/bin/psql /usr/bin/psql145
# 切换用户
[root@localhost bin]# su - postgres
# 执行命令
[postgres@wc-ckg-99-2 root]$ psql145

could not change directory to "/root": Permission denied
psql145 (14.5)
Type "help" for help.

# postgres=# 修改管理员密码,\q退出
postgres=# alter role postgres with password '123';
postgres=# \q;

开启远程访问

切换到数据库目录

[root@localhost bin]# cd /run/media/postgres/data

修改postgresql.conf 配置文件,开启远程访问

listen_addresses = 'localhost',修改成 listen_addresses = '*'

[root@localhost data]# vi postgresql.conf

配置认证方式

修改/run/media/postgres/data/pg_hba.conf 添加远程访问的认证方式,未尾添加 host all all 0.0.0.0/0 md5

[root@localhost data]# vi pg_hba.conf

测试连接

基本语法

sql创建数据库、表增删改查都大同小异。

不同命令

执行sql文件

[root@localhost bin]# ./psql -U postgres -h localhost -p 5432 -d 数据库名 -f xxx.sql

创建数据库

# 创建以 utf-8 字符的数据库,并且以 template0 为模版创建
create database 数据库名 with  owner = postgres template = template0 encoding = 'utf8';
# 给指定用户授指定数据库所有权限
grant all privileges on database 数据库名 to postgres;

执行登陆操作后提示 FATAL: role 'root' is not permitted to log in.,运行命令 alter user "root" login;
执行命令后提示 Postgresql : syntax error at or near "-",将名字添加 "",eg: alter user "dell-sys" with password 'Pass@133';


原文章地址:
https://www.cnblogs.com/starxing/p/16816122.html

posted @ 2022-12-09 17:13  快乐小洋人  阅读(179)  评论(0编辑  收藏  举报