前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7 部署 PostgreSQL

CentOS7 部署 PostgreSQL

作者头像
陳斯托洛夫斯記
发布2024-08-07 12:42:23
690
发布2024-08-07 12:42:23
举报
文章被收录于专栏:XBD

编译安装

创建用户和组

代码语言:javascript
复制
useradd postgres
groupadd postgres
mkdir -pv /usr/local/postgresql/logs
mkdir -pv /data/postgres 
chown -R postgres.postgres /usr/local/postgresql/
chown -R postgres.postgres /data/postgres

编译安装

代码语言:javascript
复制
./configure --prefix=/usr/local/postgresql/ --without-readline
make && make install

配置环境变量

代码语言:javascript
复制
vim /etc/porfile.d/postgresql.sh

export PGHOME=/usr/local/postgresql
export PGDATA=/data/postgres
export PGLIB=/usr/local/postgresql/lib
export PATH=$PGHOME/bin:$PATH

source /etc/porfile.d/postgresql.sh 

初始化数据库

代码语言:javascript
复制
su - postgres
initdb -D /data/postgres/

启动 postgresql

代码语言:javascript
复制
pg_ctl -D /data/postgres/ -l /usr/local/postgresql/logs/logfile start

创建启动脚本

代码语言:javascript
复制
vim /usr/lib/systemd/system/postgresql.service

[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking

User=postgres
Group=postgres

# Port number for server to listen on
Environment=PGPORT=5432

# Location of database directory
Environment=PGDATA=/data/postgres

# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog

# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000

#ExecStartPre=/usr/local/postgresql/bin/postgresql-check-db-dir ${PGDATA}
ExecStart=/usr/local/postgresql/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
ExecStop=/usr/local/postgresql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/local/postgresql/bin/pg_ctl reload -D ${PGDATA} -s

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

[Install]
WantedBy=multi-user.target

脚本启动

代码语言:javascript
复制
systemctl daemon-reload
systemctl enable postgresql
systemctl start postgresql

配置

代码语言:javascript
复制
# 修改访问控制配置文件
vim /data/postgres/pg_hba.conf
	host	all		all		0.0.0.0/0		md5

# md5 表示加密方式,需要密码访问
# 加密方式:
ident:是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的操作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库
trust:是只要知道数据库用户名就不需要密码或ident就能登录,建议不要在生产环境中使用
md5:是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户
password:是以明文密码传送给数据库,建议不要在生产环境中使用
reject:拒绝认证

# 修改主配置文件
vim /data/postgres/postgres.conf
	listen_addresses = "*"		# 改为*表示监听整个网络

连接数据库

代码语言:javascript
复制
[root@localhost ~]# psql -U postgres 
[root@localhost ~]# psql -h 127.0.0.1 -d postgres -U postgres 			//默认登录名是postgres
[root@localhost ~]# alter user postgres with password '123456';			//设置数据库密码

yum 安装

安装源

代码语言:javascript
复制
yum install http://download.postgresql.org/pub/repos/yum/12/redhat/rhel-7.5-x86_64/pgdg-redhat-repo-42.0-11.noarch.rpm

安装服务端

代码语言:javascript
复制
yum install postgresql12-server

查看安装位置

代码语言:javascript
复制
rpm -qal | grep postgresql 			# 默认安装在/var/lib/pgsql/11/data/目录下

安装客户端

代码语言:javascript
复制
yum install postgresql12

创建数据目录,修改权限

代码语言:javascript
复制
mkdir -pv /data/pgsql/
mkdir /var/log/postgres
chown -R postgres.postgres /data/pgsql/
		
touch /var/log/postgres/postgres.log 
chown -R postgres.postgres /var/log/postgres

初始化数据库

代码语言:javascript
复制
su - postgres 
/usr/pgsql-11/bin/initdb -E UNICODE -D /data/pgsql/

修改配置文件

代码语言:javascript
复制
# 修改主配置文件
vim /mnt/data/postgresql.conf
	listen_addresses = '*'
	
# 修改访问控制配置文件
vim /mnt/data/pg_hba.conf
	host    all        all        0.0.0.0/0          md5
	
# 修改数据目录
vim /usr/lib/systemd/system/postgresql-12.service
	Environment=PGDATA=/data/pgsql/

启动

代码语言:javascript
复制
systemctl start postgresql-12

连接测试

代码语言:javascript
复制
psql -U postgres -h localhost -p 5432

常用操作命令

代码语言:javascript
复制
# 连接数据库
psql -U postgres -h localhost -p 5432
		
# 列出所有数据库
\l 
		
# 进入某个数据库
\c 数据库名
		
# 列出所有表
\d 
		
# 列出表结构
\d 表名
		
# 退出 
\q 
		
# 导出数据库 
pg_dump -U postgres -h localhost -p 5432 数据库名 > /path/to/name
		
# 删除数据库
drop database 数据库名
		
# 导入
psql -U postgres -h localhost -p 5432 数据库名 < /path/to/name 
		
		
# 创建用户和数据库并授权
create user 用户名 with password '密码';
create database "数据库名";
grant all privileges on database 数据库名 to 用户名;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-052,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编译安装
  • yum 安装
  • 常用操作命令
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档