步骤1:安装依赖项
sudo yum install -y epel-release
sudo yum install -y wget git gcc make
步骤2:安装 PostgreSQL 依赖项
sudo yum install -y readline-devel zlib-devel
步骤3:下载并编译 PostgreSQL 源代码
# 创建一个工作目录
mkdir ~/postgres_install
cd ~/postgres_install
# 下载 PostgreSQL 源代码
git clone https://github.com/postgres/postgres.git
# 进入源代码目录
cd postgres
# 检查并安装编译 PostgreSQL 所需的工具
./configure
# 编译和安装 PostgreSQL
make
sudo make install
如果./configure或make时存在以下报错,请执行对应命令
ICU library not found
sudo yum install -y libicu libicu-devel
bison not found
sudo yum install -y bison
flex not found
sudo yum install -y flex
BEGIN failed–compilation aborted at genbki.pl line 20.
sudo yum install -y perl-CPAN
步骤4:设置环境变量
在 ~/.bashrc 或 ~/.bash_profile 中添加以下行:
export PATH=$PATH:/usr/local/pgsql/bin
步骤5:创建 PostgreSQL 用户和数据库
# 创建 PostgreSQL 用户
sudo adduser postgres
#为用户创建密码
sudo passwd postgres
#创建pg数据存储目录
mkdir /pgdata
# 切换到 postgres 用户
sudo su - postgres
# 初始化数据库
initdb -D /pgdata
# 启动 PostgreSQL
pg_ctl -D /pgdata -l logfile.log start
如果遇到下面情况,则切换到root用户:
bash: initdb: command not found...
Install package 'postgresql-server' to provide command 'initdb'? [N/y]
等使用root用户运行initdb -D /pgdata命令后,出现上述提示后,直接选择y即可。
此步操作待initdb安装结束后会提示:
initdb: 错误: 不能使用root用户运行
请以服务器进程所有者的用户 (无特权) 身份
此时先改变pgdata目录的权限
chown -hR postgres:postgres /pgdata/
再切换回postgres用户,运行一下命令
initdb -D /pgdata
步骤6:连接到 PostgreSQL
psql -U postgres
这将进入 PostgreSQL 的命令行界面,你可以在其中执行 SQL 命令。
可能会有的问题:
如果有同学执行pg_ctl -D /pgdata -l logfile.log start时提示以下错误,请重新执行该命令,如果还不行就进入到/pgdata目录重新执行:
等待服务器进程启动 ..../bin/sh:行1: logfile.log: 权限不够
已停止等待
pg_ctl: 无法启动服务器进程
检查日志输出.