首先说明下我安装的是Postgresql 版本为12.4
官网下载地址:
https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz
准备好 postgresql 的安装包,以下操作以 12.4 版本为例。
建议使用 root 用户新建普通用户“postgres”仅用于安装 postgresql 数据库。
请在root用户下操作,命令如下:
$ groupadd postgres $ useradd postgres -d /home/postgres -g postgres $ passwd postgres
请记住设计的密码,如果密码和用户名重复还会提醒你,但是还是会生效
tips:如果忘记了新创建的用户密码,
请切换到root并使用命令格式:passwd+“用户名”
会要求你输入新密码,并再重复输入,同样如果密码和用户名重复还会提醒你,但是还是会生效
切换到 root 用户安装依赖的系统组件,命令如下:
请先Su root
再执行以下命令:
$ yum -y install gcc perl-ExtUtils-Embed readline-devel zlib-devel openssl-devel pam pam-devel libxml2-devel libxslt-devel tcl tcl-devel python-devel docbook-style-dsssl flex bison openjade
切换到 postgres 用户
请先su postgres
在目录下解压安装包:
$ tar -xvf postgresql-12.4.tar.gz
请记住你解压的目录,会多次用到!
请记住你解压的目录,会多次用到!
请记住你解压的目录,会多次用到!
进入解压的目录,
创建data和log目录
mkdir /所在目录/data mkdir /所在目录/log
执行预编译命令:
cd +所在目录
./configure --prefix=/home/postgresql-12.4 --with-pgport=5432 --with-perl --with-tcl --with-python --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt
成功后的部分日志如下:
以下是日志不需要执行
config.status: creating src/include/pg_config_ext.h config.status: src/include/pg_config_ext.h is unchanged config.status: creating src/interfaces/ecpg/include/ecpg_config.h config.status: src/interfaces/ecpg/include/ecpg_config.h is unchanged config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c config.status: linking src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
编译和安装,继续执行命令:
$ gmake world $ gmake install-world
root用户下
vi /etc/profile
新增行输入
export PGHOME=/你自己的安装目录/postgresql export PGDATA=/你自己的安装目录/postgresql/data export PATH=$PATH:JAVA_HOME/bin:$PGHOME/bin
记得保存退出 -wq
不要在 root 用户下初始数据库,否则会报错
initdb: cannot be run as root Please log in (using, e.g., “su”) as the (unprivileged) user that will own the server process.
还是在用户postgres下,记得切换
进入安装后的 postgresql 目录,执行初始化数据库命令:
/home/sdjk/soft/postgresql-12.4/bin/initdb -D "/home/sdjk/soft/postgresql-12.4/data" -U pgdts -W
需要输入、再次输入数据库管理员账号密码:
初始化成功后,出现以下信息:
Success. You can now start the database server using: /home/postgres/pg12.4/bin/pg_ctl -D /home/postgres/pgdata -l logfile start
使用初始化完成后系统提供的启动命令,如下:
$ /home/postgres/pg12.4/bin/pg_ctl -D /home/postgres/pgdata -l logfile start
启动成功会出现如下日志:
server starting
验证 postgresql 是否启动成功:
$ ps -ef|grep postgres
登录数据库
psql -U postgres -d postgres
1.xx文件夹 could not change directory to “/root”: 权限不够
是不是用root而不是新用户解压的 要改一下使用chown设置文件夹的所有子文件夹和文件的所有权
在root下操作 chown -R postgres:root +目录即可 如:
chown -R postgres:root /home/postgresql-12.4