PostgreSQL-12安装和简单操作

一、安装

1、yum安装

# 添加yum源
$ yum -y install https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装PostgreSQL
$ yum -y install postgresql12 postgresql12-server postgresql12-contrib

# 检查版本信息
$ psql --version
psql (PostgreSQL) 12.3

2、初始化数据库

这里需要注意一下,初始化的时候可以指定postgresql的数据目录哦!

1)使用默认数据目录

yum安装的postgresql的默认数据目录为/var/lib/pgsql/12/data,直接初始化就行

/usr/pgsql-12/bin/postgresql-12-setup initdb

2)使用自己规划好的数据目录

如果已经规划好别的数据目录,可以在初始化的时候用-D参数指定数据目录。

# 新建数据目录
mkdir -p /data/postgresql/data

# 授权
chown -R postgres:postgres /data/postgresql/data

# 切换到postgres用户,初始化
$ su - postgres
-bash-4.2$ /usr/pgsql-12/bin/initdb -D /data/postgresql/data

# 修改postgresql的system.service文件
vim /usr/lib/systemd/system/postgresql-12.service
Environment=PGDATA=/data/postgresql/data/

# 重新加载系统服务
systemctl daemon-reload

3、启动 postgresql 服务

systemctl enable postgresql-12
systemctl start postgresql-12
systemctl status postgresql-12

postgresql会自动完成以下操作:

  • 自动生成一个linux系统用户postgres:管理数据库的系统用户

  • 数据库用户postgres:数据库超级管理员

  • 此用户的默认数据库为postgres

  • 可有修改下默认postgres数据库用户的密码:

    $ su - postgres    
    -bash-4.2$ psql 
    psql (12.3)
    Type "help" for help.
    
    postgres=# alter role postgres with password '123456';
    ALTER ROLE
    

二、修改配置

配置文件在数据目录中,由于我自定义了数据目录,所以是在/data/postgresql/data

cd /data/postgresql/data


vim postgresql.conf

# 修改监听的ip和端口
listen_addresses = '*' 


vim pg_hba.conf

#新增下面一行
host all all 0.0.0.0/0 password # 所有的用户通过任意IP都可以使用面膜的方式登录PostgreSQL

重启数据库

systemctl restart postgresql-12

三、数据库的基础操作

1、连接数据库控制台

在本机想连接到数据库,需要切换到postgres用户下,在postgres用户下连接数据库,是不需要密码的。

切换 postgres 用户后,提示符变成-bash-4.2$,使用psql连接到数据库控制台,此时系统提示符变为postgres=#,如下:

$ su - postgres    
-bash-4.2$ psql 
psql (12.3)
Type "help" for help.

postgres=# 

2、SQL控制台操作语句

数据库创建与修改

# 创建数据库
create database testdb;

# 删除数据库
drop database testdb;

# 重命名数据库(该数据库必须没有活动的连接)
alter database testdb rename to newname;

# 以其他数据库为模板创建数据库(表结构、数据都会复制)
create database newdb template testdb;

# 将查询结果写入文件
\o /tmp/test.txt
select * from test;

# 列状显示
\w

# 再一次\o关闭写入,否则是连续写入的
\o

# 退出控制台
\q

数据库用户创建和授权

# 建立新的数据库用户
create user durant with password '123456';

# 为新用户建立数据库
create database testdb owner durant;

# 把新建的数据库权限赋予新用户
grant all privileges on database testdb to durant;

四、认证方式

认证权限的配置文件为:pg_hba.conf

命令行的参数说明

  • -U username:用户名,默认值为postgres
  • -d dbname:要连接的数据库名,默认值为postgres。如果指定-d参数,则默认访问与用户名名称相同的数据库;
  • -h hostname:主机名,默认值为localhost
  • -p port:端口号,默认值5432;

1、认证方式

常见的四种身份验证方式:

  • trust:凡是能连接到服务器的,都是可信任的。只需要提供数据库用户名,可以没有对应的操作系统同名用户;
  • password 和 md5:对于外部访问,需要提供 psql 用户名和密码。对于本地连接,提供 psql 用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password 和 md5 的区别就是外部访问时传输的密码是否用 md5 加密;
  • ident:对于外部访问,从 ident 服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录;对于本地连接,实际上使用了peer;
  • peer:通过客户端操作系统内核来获取当前系统登录的用户名,并作为psql用户名进行登录。

2、远程登录

要允许远程登录,需要修改配置文件中的监听ip和认证方式。

vim postgresql.conf

# 修改监听的ip和端口
listen_addresses = '*' 


vim pg_hba.conf

#新增下面一行
host all all 0.0.0.0/0 password

需要重启生效:

systemctl restart postgresql-12

验证:

[root@localhost ~]# psql -Upostgres -d postgres -h 192.168.0.125 -p 5432

参考文档:
https://www.cnblogs.com/sunhongleibibi/p/11943393.html

你可能感兴趣的:(Postgresql,postgresql)