不断学习 · 持续进步 Skip to main content

二进制部署 pgsql 数据库

部署 PostgreSQL 数据库

下载 PostgreSQL https://www.postgresql.org/download/

编译安装 PostgreSQL

tar -xzf postgresql-XX.X.X.tar.gz
cd postgresql-XX.X.X

#安装依赖
#apt install build-essential libreadline-dev zlib1g-dev

./configure --prefix=/usr/local/pgsql
make && make install

创建数据目录

adduser postgres
mkdir /usr/local/pgsql/data
chown postgres:postgres /usr/local/pgsql/data

初始化数据库

sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

启动 PostgreSQL 数据库

sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

验证是否正确安装

psql -U postgres -c "SELECT version();"

创建日志目录

mkdir /var/log/postgresql/
chown postgres:postgres /var/log/postgresql/

创建 pgsql 服务文件 /usr/lib/systemd/system/pgsql.service

[Unit]
Description=PostgreSQL
After=network.target

[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /var/log/postgresql/postgresql.log
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D /usr/local/pgsql/data
PIDFile=/usr/local/pgsql/data/postmaster.pid

[Install]
WantedBy=multi-user.target

启动 Postgresql 服务

systemctl daemon-reload
systemctl enable --now pgsql.service

psql 创建用户 并授权

create database grafana;

create user grafana with password 'exam@123';

GRANT USAGE ON SCHEMA public TO grafana;
GRANT CREATE ON SCHEMA public TO grafana;
grant ALL privileges on database grafana to grafana;