很多年前在centos系统上编译过一个版本,现在基本都改用ubuntu,所以在ubuntu22.04上再次进行编译并记录,此次编译的最新的17.5的版本,也包含了使用system管理postgresql服务的配置撰写。
以下所有操作均切换到root账户进行的操作,首先我们先安装基础依赖包
apt-get install -y systemtap-sdt-dev libicu-dev libreadline-dev zlib1g-dev libssl-dev libxml2-dev libldap-dev libsystemd-dev tcl-dev libpython3-dev libperl-dev libicu-dev pkg-config bison flex
postgresql可以在这里进行下载:https://ftp.postgresql.org/pub/source/
下来我们就进行postgresql的编译安装和基础配置
wget https://ftp.postgresql.org/pub/source/v17.5/postgresql-17.5.tar.gz
tar -zxvf postgresql-17.5.tar.gz
groupadd postgres
mkdir -p /home/postgres
useradd -d /home/postgres -s /sbin/nologin postgres
mkdir -p /data/pgsql
chown -R postgres:postgres /data/pgsql
mkdir -p /usr/local/pgsql
cd postgresql-17.5
./configure --prefix=/usr/local/pgsql
make -j$(nproc)
make install
上述编译完成以后我们将postgresql的执行目录添加到$PATH,最好是添加到/etc/profile中方便后续命令的执行。
export PATH=$PATH:/usr/local/pgsql/bin
我们然后需要切换到postgres账户进行数据的初始化
su - postgres
cd /usr/local/pgsql/bin
./initdb -D /data/pgsql
看到上述提示可以使用pg_ctl命令进行postgresql的启动
pg_ctl -D /data/pgsql -l logfile start
我们退出postgres账户,自己撰写一个开机启动服务,用于systemd管理postgresql服务。
保存退出后我们撰写pgsqld.service服务用于systemd管理
vim /usr/lib/systemd/system/pgsqld.service
[Unit]
Description=PostgreSQL
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /data/pgsql
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D /data/pgsql
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /data/pgsql
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存退出以后我们试试用服务管理postgresql
systemctl daemon-reload
systemctl start pgsqld
systemctl status pgsqld
systemctl enable pgsqld
postgresql还有一些基本配置可以查看/data/pgsql/postgresql.conf
最后我们修改postgresql的账户密码
/usr/local/pgsql/bin/psql -U postgres
提示报错
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
我们需要做一条软链接解决这个问题
ln -s /tmp/systemd-private-3675952e3e044f84a9f3eacd248b04d7-pgsqld.service-gsLHma/tmp/.s.PGSQL.5432 /tmp/.s.PGSQL.5432
然后再次使用登录命令就发现可以正常登录了,使用如下命令进行密码的修改
ALTER USER postgres WITH PASSWORD '你的密码';
内容版权声明:除非注明,否则皆为本站原创文章。
相关推荐
- ubuntu使用deb包安装指定版本内核
- ubuntu修改grub引导切换到指定内核的方法
- ubuntu使用nvbandwidth测试单节点gpu带宽性能
- ubuntu24.04LTS添加apt源
- ubuntu下使用qperf工具测试RDMA网络带宽和延迟
- ubuntu22.04关闭自动更新和禁止unattended-upgrades服务开机启动
- ubuntu22.04使用nccl-tests进行单机多卡通信测试
- ubuntu22.04编译安装hwloc/libevent/ucx/openpmix/openmpi
- ubuntu安装openvpn并配置连接
- ubuntu22.04使用gpu-burn进行gpu显卡测试
评论列表