PostgreSQL初识,编译安装

Posted wshenJin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL初识,编译安装相关的知识,希望对你有一定的参考价值。

编译安装

root@ ~]# yum install readline-devel
root@ ~]# wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz
root@ ~]# tar xf postgresql-11.4.tar.gz 
root@ ~]# cd postgresql-11.4
root@ postgresql-11.4]# ./configure --prefix=/usr/local/postgresql
root@ postgresql-11.4]# make && make install 

新增postgresql用户并使用该账号操作

root@ ~]# useradd -s /sbin/nolog postgresql
root@ ~]# ln -sv /usr/local/postgresql/bin /home/postgresql/ 
root@ ~]# su - -s /bin/bash postgresql
postgresql$ mkdir /data/database/postgresql

初始化:

postgresql$ bin/initdb -D /data/database/postgresql/
postgresql$ bin/pg_ctl init -D /data/database/postgresql/  #或者

目录文件说明:

  • base目录 表空间目录
  • global目录 相关全局变量目录
  • pg_hba.conf 访问控制配置文件
  • postgresql.conf postgresql主配置文件

postgresql.conf 配置:

listen_addresses = ‘*‘
port = 5432
max_connections = 1024
unix_socket_directories = ‘/tmp‘ 

启动:

postgresql$ bin/pg_ctl -D /data/database/postgresql/ -l /data/database/postgresql/postgresql.log start

关闭

postgresql$ bin/pg_ctl -D /data/database/postgresql/ stop

创建初始数据库,并用超级用户登录

postgresql$ bin/psql
psql: FATAL:  database "postgresql" does not exist
postgresql$ bin/createdb postgresql
postgresql$ bin/psql
psql (11.4)
Type "help" for help.

postgresql=# alter role postgresql with password ‘123456‘;

ps 初始化数据库时,会建立一个和初始化用户名的同名超级用户,在这个用户登录时执行的是操作系统认证,所以不需要用户名和密码,如也需密码认证,可修改文件pg_hba.conf。

配置访问控制pg_hba.conf,并reload:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all        postgresql                                   trust
host    all        postgresql           127.0.0.1/32            md5   

  说明:
    TYPE:     连接方式,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是拒绝认证。
postgresql$ bin/pg_ctl -D /data/database/postgresql/ reload

添加一个root超级用户,和pguser普通用户

#访问控制
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all        postgresql,root                              trust
host    all        postgresql,root      127.0.0.1/32            md5   
local   pgdb       pguser                                       md5
host    pgdb       pguser               127.0.0.1/32            md5
                                                                                                                                      
postgresql$ bin/pg_ctl -D /data/database/postgresql/ reload
server signaled
postgresql$ bin/createdb root
postgresql$ bin/createuser --superuser -P root
Enter password for new role: ***
Enter it again: ***
[postgresql@localhost ~]$ bin/psql -U root 
psql (11.4)
Type "help" for help.

root=# q
[postgresql@localhost ~]$ bin/psql -U root -h 127.0.0.1
Password for user root: 
psql (11.4)
Type "help" for help.

root=# create user pguser with password ‘1111‘;        
CREATE ROLE
root=# create database pgdb  owner pguser;       
CREATE DATABAS

使用普通用户登陆pgdb库:

[root@ ~]# psql -U pguser  pgdb
Password for user pguser: 1111
psql (11.4)
Type "help" for help.

pgdb=> q

常用命令:

  • passwor 设置密码
  • q 退出
  • h:查看SQL命令的解释,比如h select。
  • ?:查看psql命令列表。
  • l:列出所有数据库。
  • c [database_name]:连接其他数据库。
  • d:列出当前数据库的所有表格。
  • d [table_name]:列出某一张表格的结构。
  • du:列出所有用户。
  • e:打开文本编辑器。
  • conninfo:列出当前数据库和连接的信息。

以上是关于PostgreSQL初识,编译安装的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

PostgreSQL编译安装

源码编译安装PostgreSQL(pg12)

源码编译安装PostgreSQL(pg12)

postgresql编译安装与调试