程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Centos7 安装 PostgreSql 13,并指定数据存放目录

balukai 2025-02-06 13:58:51 文章精选 8 ℃

公司要转用postgresql,经过自己的测试,记录下了安装、配置步骤。

1、安装资源 rpm 、客户端、服务端

[root@localhost ~]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

[root@localhost ~]# yum install -y postgresql13-server (服务端安装)

[root@localhost ~]# yum install -y postgresql13 (客户端安装,可选)

2、数据库初始化(指定目录)

创建目录、增加用户、给用户赋权

创建目录

[root@localhost ~]# mkdir -p /data/pgdata

创建用户

[root@localhost ~]# useradd postgres

给创建的目录赋予 postgres 用户权限

[root@localhost ~]# chown postgres:root /data/pgdata/

3、初始化数据库

切换用户

[root@localhost ~]# su - postgres

[postgres@localhost ~]$ /usr/pgsql-13/bin/initdb -D /data/pgdata/

4、查看初始化后的数据目录

[root@localhost ~]# su - postgres (切换用户)

[postgres@localhost ~]$ ll /data/pgdata/

5、修改配置文件

root用户下操作,将其中的 PGDATA 修改为新的数据目录:

[root@localhost ~]$ vim /usr/lib/systemd/system/postgresql-13.service

Environment=PGDATA=/data/pgdata/

6、切换用户 postgres 修改配置文件

[root@localhost ~]# su - postgres (切换用户)

[postgres@localhost ~]$ vim /data/pgdata/postgresql.conf

[root@localhost ~]# su - postgres (切换用户)

[postgres@localhost ~]$ vim /data/pgdata/pg_hba.conf



host all all 0.0.0.0/0 md5

说明:

TYPE:pg的连接方式,local:本地unix套接字,host:tcp/ip连接

DATABASE:指定数据库

USER:指定数据库用户

ADDRESS:ip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一 位是0~255之间的任何一个

METHOD:认证方式,常用的有ident,md5,password,trust,reject。

md5是常用的密码认证方式。

password是以明文密码传送给数据库,建议不要在生产环境中使用。

trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。

reject是拒绝认证。

7、root 下,防火墙开启 postgresql 数据库服务的端口(如条件允许,可直接关闭防火墙)

[root@localhost ~]# firewall-cmd --add-port=5432/tcp --permanent

success

[root@localhost ~]# firewall-cmd --reload

success


8、数据库服务器开启、重启和状态查看

启动服务:

[root@localhost ~]# systemctl start postgresql-13

停止服务:

[root@localhost ~]# systemctl stop postgresql-13

重启服务:

[root@localhost ~]# systemctl restart postgresql-13

9、查看启动状态

[root@localhost ~]# netstat -lntp

10、设置数据库密码(此处我设置的密码是: 123456 )

切换用户

[root@localhost ~]# su - postgres

[postgres@localhost ~]$ psql

psql (11.5)

Type "help" for help.

postgres=# ALTER USER postgres ENCRYPTED PASSWORD '123456';

ALTER ROLE

postgres=# \l

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

(3 rows)


二、创建用户和数据库

# su - postgres -- 首先切换到postgres

-bash-4.1$ psql -- 输入psql

psql (10.5)

Type "help" for help.

postgres=#

创建用户

postgres=#

create user username with password '****'; CREATE ROLE postgres=#

需要注意:

  1. 要以英文分号结尾

  2.密码需要引号包裹

创建数据库

postgres=#

create database test_db owner ypl_test; -- 创建数据库指定所属者 CREATE DATABASE postgres=#

将数据库的权限,全部赋给某个用户

postgres=#

grant all on database test_db to ypl_test; -- 将dbtest所有权限赋值给username GRANT postgres=#

删除数据库:

postgres=# drop database testdb; DROP DATABASE postgres=#

最近发表
标签列表