Linux 编译安装PostgreSQL
Linux 编译安装PostgreSQL
准备
安装好系统,我的是 centos stream 9
$ cat /etc/redhat-release
CentOS Stream release 9
创建专用用户
groupadd postgres
useradd -g postgres postgres
echo postgres | passwd --stdin postgres
防火墙和selinux按照需求关闭,我这是测试环境,索性关闭
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
# 输入 getenforce 返回 Permissive 则是关闭状态
systemctl stop firewalld.service
systemctl disable firewalld.service
# 查看是否关闭
systemctl status firewalld.service
创建一个postgres安装目录,不建议放在 home 下,往往 home 磁盘比较小
mkdir -p /opt/pgsql
chown -R postgres:postgres /opt/pgsql
下载编译安装所需软件
yum install gcc gcc-c readline-devel zlib-devel openssl-devel systemd-devel
编译安装
下面所有操作都是在 postgres 用户下执行
su - postgres
下载好安装包
wget https://ftp.postgresql.org/pub/source/v15.1/postgresql-15.1.tar.bz2
# 验证安装包是否完整,查看 md5 值和 sha256 值对的上就可以
md5sum postgresql-15.1.tar.bz2
sha256sum postgresql-15.1.tar.bz2
# 官方 MD5和sha256,通过浏览器直接打开链接也可以看到
curl -v https://ftp.postgresql.org/pub/source/v15.1/postgresql-15.1.tar.bz2.md5
curl -v https://ftp.postgresql.org/pub/source/v15.1/postgresql-15.1.tar.bz2.sha256
解压
tar xf postgresql-15.1.tar.bz2
cd postgresql-15.1/
编译安装
./configure --prefix=/opt/pgsql/postgresql-15.1 --with-openssl --with-zlib --with-systemd --with-readline
make
make all
make check
make install
# 创建软连接,方便日后升级
ln -sf /opt/pgsql/postgresql-15.1/ /home/postgres/pgsql
初始化并创建数据库
能够正常连接test数据的话就没有问题
# 初始化
/home/postgres/pgsql/bin/initdb -D /opt/pgsql/data
# 启动数据库
/home/postgres/pgsql/bin/pg_ctl -D /opt/pgsql/data -l /opt/pgsql/pgsql.log start
# 创建数据库 test
/home/postgres/pgsql/bin/createdb test
# 连接数据test
/home/postgres/pgsql/bin/psql test
设置PostgreSQL的环境变量
echo "export PATH=/home/postgres/pgsql/bin:$PATH" >> /home/postgres/.bashrc
echo "export LD_LIBRARY_PATH=/home/postgres/pgsql/lib" >> /home/postgres/.bashrc
source /home/postgres/.bashrc
开启远程登录
1、修改 postgresql.conf
文件: vim /opt/pgsql/data/postgresql.conf
, 修改listen_addresses的值
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*'
2、在 pg_hba.conf
文件最后添加如下内容
echo "host all all 0/0 md5" >> /opt/pgsql/data/pg_hba.conf
3、创建需要连接的数据库和用户(也可以用已存在的)
create user appuser with password 'Appuser';
create database mshing owner appuser;
grant all privileges on database mshing to appuser;
4、重启数据库
/home/postgres/pgsql/bin/pg_ctl -D /opt/pgsql/data -l /opt/pgsql/pgsql.log restart
5、测试远程连接
$ psql -h 192.168.253.128 -d mshing -U appuser
Password for user appuser:
psql (15.1)
Type "help" for help.
mshing=>
mshing=> exit
# --------
# 未开启远程时直接连接会报错
$ psql -h 192.168.253.128 -d mshing -U appuser
psql: error: connection to server at "192.168.253.128", port 5432 failed: 拒绝连接
Is the server running on that host and accepting TCP/IP connections?
远程没问题后就可以愉快的使用图形化工具来玩数据库了。比如:Navicat、DataGrip,还有免费开源好用的DBeaver。
用PostgreSQL自研的pgAdmin也是非常不错的选择。
这些操作下来还是不能连接,可以注意一下防火墙、安全组之类的规则。
使用 systemd 管理服务
sudo vim /etc/systemd/system/postgresql.service
sudo chmod 755 /etc/systemd/system/postgresql.service
sudo systemctl daemon-reload
内容如下:
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=postgres
Group=postgres
ExecStart=/home/postgres/pgsql/bin/postgres -D /opt/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
接下来就可以愉快的使用systemd来管理PostgreSQL了
systemctl start postgresql.service
systemctl restart postgresql.service
systemctl stop postgresql.service
systemctl status postgresql.service
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhcjgb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01