PostgreSQL的安装讲解(二)
PostgreSQL 系列博文讲解(B站同步介绍视频:https://space.bilibili.com/282421760)
支持一下,关注一波微信公众号:【 钥道不止 】
1. 安装方式讲解
PG提供多平台多种安装方式,对于Windows和Mac的一路“下一步”就行,这里就不做介绍,相信装过软件的都懂,最多换个安装路径、写个用户密码,不然一路“next”即可。
软件下载链接:
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
这里着重讲解基于源码的安装方式,这也是比较【 推荐 】的安装方式。
2. YUM源安装
官网介绍的redhat系统yum源安装方式:
https://www.postgresql.org/download/linux/redhat/
# 检查yum源是否有PG
yum list | grep postgres
# 使用yum安装系统自带的PG
yum install postgresql-server.x86_64
# 官网介绍的指定PG版本的安装,需要能连接网络或先下载相关rpm包
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
- yum安装会自动创建postgres用户
- Home目录缺省在 /usr/pgsql-14/
- Data目录缺省在 /var/lib/pgsql/14/data/
3. 源码安装流程【 推荐 】
中文社区软件下载及安装指导:http://www.postgres.cn/v2/download
3.1. 安装系统依赖
# 开发包,主要是需要gcc和gcc-c++编译器
yum groupinstall "Development tools"
# 语法分析器
yum install –y bison
# 词法分析器
yum install –y flex
# psql客户端的命令历史
yum install –y readline-devel
# pg_dump/pg_restore的压缩功能支持
yum install –y zlib-devel
#执行👆上面5条语句,或直接执行👇下面一条语句,结果等同都是安装依赖
yum install -y readline-devel gcc gcc-c++ bison flex zlib-devel
3.2. 磁盘规划,及创建用户组
# 创建postgres用户
useradd -rmU postgres
# 修改postgres用户密码
passwd postgres
# 以明文方式修改postgres用户的密码
echo "postgres"|passwd postgres --stdin
# 进入postgres用户目录
su - postgres
下面的所有步骤都在postgres用户下操作,PG所有的安装路径也都存放在postgres用户目录下,方便入门,避免操作过程出现文件目录所有者及权限不足的问题。
# 创建PG软件安装目录
mkdir -p pgdb/pgsoft
# 创建数据目录
mkdir -p pgdb/pgdata
# 创建归档目录
mkdir -p pgdb/pgarch
# 创建单独的wal日志存放目录
mkdir -p pgdb/pgwal
# 使用👆上面的4条创建语句一个一个创建或用👇下面的语句一次性创建
mkdir -p pgdb/{pgsoft,pgdata,pgarch,pgwal}
# 若是root用户创建的目录,则需要将目录权限授权给postgres用户
chown -R postgres:postgres /home/postgres/pgdb
chmod 700 /home/postgres/pgdb
3.3. 下载对应源代码
这里以14版本的tar.gz源码包为例,对于初学者来说,版本高低影响不大,基本操作大同小异。
官网源码ftp网址:https://www.postgresql.org/ftp/source/
#可连通网络的时候,可用wget把源码包拉下来,没网的就先去官网下载源码包然后上传即可
wget https://ftp.postgresql.org/pub/source/v14.0/postgresql-14.0.tar.gz --no-check-certificate
3.4. 解压编译安装
# 解压源码包
tar -xzvf postgresql-14.0.tar.gz
# 进入解压的源码包
cd postgresql-14.0
# prefix拟指定安装路径/home/postgres/pgdb/pgsoft
./configure --prefix=/home/postgres/pgdb/pgsoft
# 查看相关初始化参数配置
./configure --help
./configure (--prefix=/xxoo 指定数据库软件安装目录)(--with-blocksize=?kb 指定数据文件块大小,默认8k)(--with-segsize=?GB 指定单个文件大小,默认1GB) (--with-wal-segsize=?MB 指定wal日志大小,默认16MB)(--with-perl,--with-python 存储过程支持所需)(--with-openssl ssl连接安全)
# 编译
make world
# 安装
make install
3.5. 初始化数据库簇(database cluster)
这里的database cluster并非数据库集群,而是数据库簇,即数据库。PostgreSQL在磁盘上的一整套文件集合叫做database cluster。
# 此处使用绝对路径,也可用相对路径来操作。
# -D:database cluster的主目录
# -U:指定超级用户
# -W:指定用户密码
# -E:指定数据库字符编码
# --waldir:指定wal日志路径
/home/postgres/pgdb/pgsoft/bin/initdb -D /home/postgres/pgdb/pgdata -U postgres -E utf8 --waldir=/home/postgres/pgdb/pgwal
# 最简化的方式初始化数据库
/home/postgres/pgdb/pgsoft/bin/initdb -D /home/postgres/pgdb/pgdata
此处加上 -W “Pgdb@123” 参数设置数据库超级用户密码会报如下错误,可以后面数据库启动后再进入数据库中修改密码
补充:此处 -W 参数是可以加上,只是密码不能写在后面,带上 -W 参数后在运行初始化时会提示输入密码
3.6. 启动PostgreSQL
# 绝对路径启动
/home/postgres/pgdb/pgsoft/bin/pg_ctl -D /home/postgres/pgdb/pgdata -l logfile start
# 配置好环境变量后的启动方式
pg_ctl start
3.7. 配置环境变量
- AIX系统:配置 .profile
- Linux系统:配置 .bash_profile 或 .bashrc
# 查看配置文件
ls -al ~/
# 编辑 .bash_profile 配置文件
vi ~/.bash_profile
export PGBASE=/home/postgres/pgdb
export PGHOME=$PGBASE/pgsoft
export PGDATA=$PGBASE/pgdata
export LD_LIBRARY_PATH=$PGHOME/lib
export PGDATABASE=postgres
export PGPORT=5432
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
export PATH
# 环境变量生效
source ~/.bash_profile
3.8. 修改数据库超级用户密码
# 连接数据库
psql
# 修改数据库超级用户密码
alter user postgres password 'Pgdb@123';
# 退出连接
\q