postgresql安装及配置

postgresql

1.安装

官网下载地址

1.1 选择对应系统版本和数据库版本
  • 这里选择的是centos7 postgresql-10版本
# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Install PostgreSQL:
sudo yum install -y postgresql10-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
sudo systemctl enable postgresql-10
sudo systemctl start postgresql-10

2.配置

2.1 查找配置文件位置
  • 切换到root用户给postgres设置密码,并切换到postgres用户

    su
    passwd postgres
    su postgres
    
  • 进入postgresql控制台

    # 如果使用默认值,可以直接输入psql就能进入了
    psql -U postgres -h 127.0.0.1 -p 5432 -d postgres
    
  • 也可以在这里修改密码

    ALTER USER postgres WITH PASSWORD 'postgres';
    
  • 查找配置文件所在位置

    select name,setting from pg_settings where category='File Locations';
    

获取文件位置

  • 退出控制台,进入配置文件所在文件夹

    # 退出控制台
    \q
    # 进入配置文件所在文件夹
    cd /var/lib/pgsql/10/data/
    # 查看文件下的配置文件
    ls
    

配置文件目录

2.2 postgresql.conf文件配置
  • 使用vim打开此配置文件,在59行将地址改为’*'代表允许任何地址访问

  • port可以修改为其他端口,也可以使用默认值

postgresql配置文件

2.3 pg_hba.conf 文件配置
TYPE      主机类型
	 1.local   unix-domain socket 仅匹配localhost 
	 2.host    TCP/IP socket
	 3.hostssl ssl加密的TCP/IP socket
	 
DATABASE  数据库名称
	 1.all  所有数据库,不匹配replication
	 2.replication
	 3.数据库名称  可以用多个逗号隔开,写多个数据库,也可以将多个数据库写入一个文件中,
	 			 用@前缀加文件名称读取文件内容
	 			 
USER      用户名
     1.all   所有用户名
     2.用户名 多个用户时配置通数据库名称
     
ADDRESS   访问ip
     1.ip/num的形式
     2.num可选择0~32的数字,代表匹配的位数,ipv4是由32位二进制组成
     例:
     	0.0.0.0/0       匹配任意主机地址
     	192.0.0.0/8     匹配以192开头的主机地址
     	192.168.0.0/16  匹配以192.168开头的主机地址
     	192.168.1.0/24  匹配以192.168.1开头的主机地址
     	192.168.1.1/32  匹配以192.168.1.1主机地址
     	
METHOD    验证方式
	 1.peer     服务器和客户端在同一环境下免密码登录
	 2.ident    和peer类似,不需要服务器客户端在同一环境下,需要pg_iden.conf文件配置
	 3.password 明文密码认证
	 4.md5      采用md5加密的密码认证
	 5.trust    完全信任,忽略验证

pg_hba配置文件

2.4 重新加载配置文件
# 1. 用超级用户运行,进入psql控制台
SELECT pg_reload_conf();

# 2. 用UNIX的kill手动发起HUP信号
kill -HUP PID

# 3.使用pg_ctl命令触发SIGHUP信号
pg_ctl reload

2.5 开启postgresql服务
  • 请注意,配置完文件之后,重启服务或重新加载配置文件生效
# 开启
systemctl start postgresql-10
# 重启
systemctl restart postgresql-10
# 关闭
systemctl stop postgresql-10
2.6 centos7防火墙设置
# 1.查看已开启的端口
firewall-cmd --zone=public --list-ports
# 2.开启防火墙端口 --zone=public 代表公共端口  tcp代表此端口为tcp连接 --permanent 永久开启
firewall-cmd --zone=public --add-port=80/tcp --permanent 
# 3.关闭防火墙端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 4.重新加载防火墙规则   每次更改防火墙后,需要重新加载或者重启防火墙
firewall-cmd --reload
# 5.查看某端口状态
firewall-cmd --zone=public --query-port=80/tcp
# 6.查看防火墙状态
systemctl status firewalld
# 7.开启防火墙
systemctl start firewalld
# 8.关闭防火墙
systemctl stop firewalld
# 9.重启防火墙
systemctl restart firewalld
# 10.永久开启防火墙
systemctl enable firewalld
# 11.永久关闭防火墙
systemctl disable firewalld

3.数据库操作

3.1 创建数据库
# 1.切换到postgres用户,进入控制台
su postgres
psql
# 2.创建数据库,可以指定数据库所属用户
create database test_db with owner test_user;
# 3.将数据库权限赋予所属用户
grant all privileges on database test_db to test_user;

3.2 删除数据库
drop database test_db;
3.3 修改数据库名
alter database test_db rename to abc;
3.3 数据库导出
pg_dump -d test_db > test_db.sql
3.4 数据库导入
psql -d test_db < test_db.sql

4.其他配置

4.1 关闭数据库连接
  • 删除数据库的时候,有其他连接存在,先关闭连接
select pg_terminate_backend(pid) from (select pid from pg_stat_activity where datname = 'test_db' ) a;
4.2 免输入密码
4.2.1 设置环境变量(方法1)
export PGPASSWORD=skytf
4.2.2 设置 .pgpass 密码文件(方法2)
vi /home/postgres/.pgpass       
                                     
--格式                                                               
hostname:port:database:username:password                             
                                                                     
--范例                                                               
192.168.1.1:5432:test_db:test_user:woshimima 
4.3.3 修改服务端 pg_hba.conf(方法3)
# 前面介绍过,在相应的位置加入此行
host   test_db         test_user           192.168.1.1/32          trust
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值