一、
下载需要的版本文件
网址
https://www.enterprisedb.com/download-postgresql-binaries
wget https://get.enterprisedb.com/postgresql/postgresql-10.11-2-linux-x64-binaries.tar.gz
tar -zxvf postgresql-10.11-2-linux-x64-binaries.tar.gz -C /root/pg
二、
新增用户组(如果是ubuntu系统需要加 -m 不然不会自动生成用户目录)
useradd postgres
passwd postgres
切换用户
su - postgres
初始化目录
/root/pg/pgsql/bin/initdb -D /root/pg/pg_data/
(我这边把初始化的目录放在了root下,初始化的时候会报权限不足的。 所以可以先给root 及 pg一个 755的权限, chmod 755 /root,chmod 755 /root/pg/ 注意:千万不要 -R,chown postgres:postgres -R /root/pg/)
三、
开启
/root/pg/pgsql/bin/pg_ctl -D /opt/postgres/pg_data/ -l logfile start
(-D 定义存储的数据目录 -l 定义日志)
关闭
/root/pg/pgsql/bin/pg_ctl -D /opt/postgres/pg_data/ stop
四、
环境变量
以上运行postgresql要定义目录,还要加绝对路径,非常麻烦,可以加到环境变量中
su - postgres
vim /root/.bash_profile
PATH=$PATH:$HOME/bin export PATH
export PATH
export PGHOME=/root/pg/pgsql
export PATH=$PATH:$PGHOME/bin
export PGDATA=/root/pg/pg_data
export PGLOG=/root/pg/pg_log/pg.log
source /root/.bash_profile
chown postgres /root/pg/pg_data
chown postgres /root/pg/pg_log
如何用systemctl 管理
vim /etc/systemd/system/postgresql.service
加入
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
ExecStart= /root/pg/pgsql/bin/pg_ctl -D /root/pg/pg_data/ start
ExecReload= /root/pg/pgsql/bin/pg_ctl -D /root/pg/pg_data/ restart
ExecStop= /root/pg/pgsql/bin/pg_ctl -D /root/pg/pg_data/ stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重载配置
systemctl daemon-reload
开启
systemctl start postgresql
关闭
systemctl stop postgresql
重启
systemctl restart postgresql
设置开机自启
systemctl enable postgresql
配置完成后
启动
pg_ctl start
关闭
pg_ctl stop
进入客户端
psql
常用命令
\l 或者 \list 展示数据库
切换数据库
\c dbname
\d 展示当前所有表
\q 退出