公司要转用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=#