63  
postgresql安装
作者: 文艺范儿 于 2020年06月05日 发布在分类 / linux / 服务安装 下,并于 2020年06月05日 编辑
postgresql

centos7安装postgresql

依据官方文档进行yum安装,

https://www.postgresql.org/download/linux/redhat/

安装方法

  1. 选择办版本: 12
  2. 选择平台: CentOS,
  3. 选择架构: x86_64
  4. 安装存储库RPM:
    yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  5. 安装客户端:
    yum install -y postgresql12
  6. 安装服务端:
    yum install -y postgresql12-server
  7. 可以选择初始化数据库并启用开机自启动:注意:要想更改其他配置需要跳过此步骤
    /usr/pgsql-12/bin/postgresql-12-setup initdb
    systemctl enable postgresql-12
    systemctl start postgresql-12

使用方法

1.更新数据保存位置

vim /usr/lib/systemd/system/postgresql-12.service
#找到Environment=PGDATA=/var/lib/pgsql/12/data/,将当前数据保存位置更新成自己指定位置
#默认保存位置/var/lib/pgsql/12/data
#这里修改为/home/deploy/pgsql/12/data/

mkdir -p  /home/deploy/pgsql/12/data/
chown -R postgres.postgres /home/deploy/pgsql

2.更改完以上配置后,需要重启初始化数据库,并重启

systemctl stop postgresql-12
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl restart postgresql-12
#如果启动有问题,请查看日志
tail -19f  /var/lib/pgsql/12/initdb.log

3.配置特定网段访问

修改postgresql.conf文件即可:

默认在/var/lib/pgsql/12/data/postgresql.conf,此次修改数据目录后配置文件在:/home/deploy/pgsql/12/data/postgresql.conf

vim /home/deploy/pgsql/12/data/postgresql.conf

listen_addresses = '*'
max_connections = 100
shared_buffers = 128MB
work_mem = 4MB

需要修改的参数含义:

listen_addresses参数含义:指定数据库用来监听客户端连接的TCP/IP地址。参数优化:如需接受其他Client的连接请求,需修改为*
max_connections参数含义:数据库可以同时建立的最大的客户端连接的数目。参数优化:根据业务应用情况和主机配置设置。不宜设置过大,如连接数大于一定数量(与机器配置相关)时,会因为进程上下文的频繁切换导致性能降低。
shared_buffers参数含义:数据库共享内存缓冲区大小,决定有多少内存可以被PostgreSQL用于缓存数据,该缓冲区为所有连接共用。参数优化:服务器内存较小时设置为服务器内存的25%-40%,内存较大时可适当设置。
work_mem参数含义:内部排序和哈希操作可使用的工作内存大小。参数优化:全局设置此参数可能会导致内存使用率过高,即当同时有多个会话进行排序操作时,每个会话会分配到这个参数大小的内存。设置不宜过大。如果要使用语句中有较大的排序操作,可以在会话级别设置该参数(如:set work_men = ‘2GB’)。

4.配置文件pg_hba.conf

/home/deploy/pgsql/12/data/pg_hba.conf

  • 配置以下参数
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all            all             10.10.56.17/32             md5

#参数说明

host  参数表示安装PostgreSQL的主机
all    第一个all 表示该主机上的所有数据库实例
all    第二个all 表示所有用户
10.10.56.17/32  表示需要连接到主机的IP地址,32表示IPV4
md5    表示验证方式  

即上述表示允许IP地址为10.10.56.17的所有用户可以通过MD5的密码验证方式连接主机上所有的数据库

  • 也可以指定具体的数据库名称和 用户
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    test            pgtest           10.10.56.17/32             md5

即表示允许地址为 10.10.56.17 的用户 pgtest通过 MD5方式 加密的密码方式连接主机上的 test 数据库。

  • 也可以配置整个网段
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    test            pgtest           0.0.0.0/0               md5

即表示允许 任意iP 通过用户名为 pgtest 和md5的 密码 验证方式连接主机上 test 的数据库。

  • 不进行密码验证
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    test            pgtest           0.0.0.0/0               trust
表示任意IP地址的用户 pgtest 无需密码验证可直接连接访问该主机的 test 数据库。
  • 注意:配置完毕务必重启应用
systemctl restart postgresql-12

数据库操作

  • 默认密码修改

[root@localhost ~]# su - postgres 
[postgres@localhost ~]$ psql -U postgres 
##修改postres密码为:chainqwer1234
postgres=# ALTER USER postgres with encrypted password 'chainqwer1234'; 
##退出
postgres=# \q
[postgres@localhost ~]$ psql -U postgres 
##创建用户usertest密码为:usertest1234
postgres=# create user usertest with password 'usertest1234';
##创建数据库test
postgres=# create database test owner usertest;
##授权test数据库所有权限给用户usertest
postgres=# grant all privileges on database test to usertest;
postgres=# \q
  • 扩展安装 
postgresql程序不包含uuid生成函数,需安装插件包添加uuid生成函数 uuid_generate_v4() 。
#安装拓展包及插件:yum install postgresql12-devel postgresql12-contrib

数据库切换命令: 

\c database_name

为当前数据库创建函数:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

验证函数:

select uuid_generate_v4()

postgresql切换到需要安装插件的数据库





 推荐知识

 历史版本

修改日期 修改人 备注
2020-06-05 21:23:43[当前版本] 文艺范儿 格式调整
2020-06-05 21:10:25 文艺范儿 格式调整
2020-06-05 20:10:55 文艺范儿 创建版本

  目录
    文艺知识分享平台 - 4.3.0 - 文艺范儿