Postgresql安装

  • 一、链接
  • 二、源码安装postgresql-11.4
    • 2.1 安装
      • 默认端口
      • 2.1.1 安装依赖
      • 2.1.2 下载解压
      • 2.1.3 编译安装
      • 2.1.4 配置环境变量
      • 2.1.5 添加用户并赋权
      • 2.1.6 初始化数据库
      • 2.1.7 编辑配置开启远程连接
      • 2.1.8 启动登录并设置密码
  • 三、使用
    • 3.1 修改postgres密码
    • 3.2 命令
      • 3.2.1 停止
      • 3.2.2 启动
      • 3.2.3 重新加载配置文件
    • 3.3 命令远程连接
    • 3.4 创建数据库
    • 3.5 基本命令
      • 3.5.1 查看系统中现存的数据库
      • 3.5.2 退出客户端程序psql
      • 3.5.3 切换到某个数据库
      • 3.5.4 查看当前数据库的表
      • 3.5.5 查看表结构
      • 3.5.5 查看索引
    • 3.6 创建表
      • 3.6.1 表定义字段并插入信息
    • 3.7 查询
      • 3.7.1 查询用户表
      • 3.7.2 查询当前数据库
      • 3.7.3 查询当前登录用户信息
    • 3.8 删除数据库
    • 3.9 删除表
    • 3.10 重命名表
    • 3.11 表内基本操作
      • 3.11.1 在已有的表里添加字段
      • 3.11.2 删除表中的字段
      • 3.11.3 重命名一个字段
      • 3.11.4 给一个字段设置缺省值
      • 3.11.5 去除缺省值
      • 3.11.6 在表中插入数据
      • 3.11.7 修改表中的某行某列的数据
      • 3.11.8 删除表中某行数据
      • 删空整个表
  • 四、解释
    • 4.1 数据目录结构
    • 4.2 配置文件

一、链接

官网 https://www.postgresql.org/
下载 https://www.postgresql.org/download/
中文社区 http://www.postgres.cn/index.php/v2/home
中文网 https://postgres.fun/
易百教程 https://www.yiibai.com/postgresql
原文链接:https://blog.csdn.net/llwy1428/article/details/95444151

二、源码安装postgresql-11.4

2.1 安装

默认端口

5432

2.1.1 安装依赖

yum install -y vim lrzsz tree wget gcc gcc-c++ make readline-devel readline zlib-devel zlib ncurses-devel
#ncurses-devel是readline-devel的依赖包

2.1.2 下载解压

mkdir /opt/postgresql
cd /opt/postgresql
wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz
tar -zxvf postgresql-11.4.tar.gz[root@localhost postgresql-11.4]# ll
总用量 748
-rw-r--r--.  1 1107 1107    522 6月  18 2019 aclocal.m4
drwxrwxrwx.  2 1107 1107   4096 6月  18 2019 config
-rwxr-xr-x.  1 1107 1107 561752 6月  18 2019 configure
-rw-r--r--.  1 1107 1107  84451 6月  18 2019 configure.in
drwxrwxrwx. 56 1107 1107   4096 6月  18 2019 contrib
-rw-r--r--.  1 1107 1107   1192 6月  18 2019 COPYRIGHT
drwxrwxrwx.  3 1107 1107    107 6月  18 2019 doc
-rw-r--r--.  1 1107 1107   3848 6月  18 2019 GNUmakefile.in
-rw-r--r--.  1 1107 1107    284 6月  18 2019 HISTORY
-rw-r--r--.  1 1107 1107  74257 6月  18 2019 INSTALL
-rw-r--r--.  1 1107 1107   1682 6月  18 2019 Makefile
-rw-r--r--.  1 1107 1107   1212 6月  18 2019 README
drwxrwxrwx. 16 1107 1107   4096 6月  18 2019 src

2.1.3 编译安装

./configure --prefix=/usr/local/postgresql
make && make install
cd /usr/local/postgresql/
[root@localhost postgresql]# ll
总用量 16
drwxr-xr-x. 2 root root 4096 11月 16 20:53 bin
drwxr-xr-x. 6 root root 4096 11月 16 20:53 include
drwxr-xr-x. 4 root root 4096 11月 16 20:53 lib
drwxr-xr-x. 6 root root 4096 11月 16 20:53 share
创建data和log目录
mkdir /usr/local/postgresql/log
mkdir /usr/local/postgresql/data

2.1.4 配置环境变量

cat << eof >> /etc/profile
export PGHOME=/usr/local/postgresql
export PGDATA=/usr/local/postgresql/data
export PATH=\$PATH:\$HOME/.local/bin:\$HOME/bin:\$PGHOME/bin
eofsource /etc/profile

2.1.5 添加用户并赋权

useradd postgres
chown -R postgres:root /usr/local/postgresql/

2.1.6 初始化数据库

注意:不能在 root 用户下初始数据库,否则会报错

su postgres
/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data/输出以下信息表示成功
[postgres@localhost postgresql]$ /usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data/
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.The database cluster will be initialized with locale "zh_CN.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
The default text search configuration will be set to "simple".Data page checksums are disabled.fixing permissions on existing directory /usr/local/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Asia/Shanghai
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... okWARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.Success. You can now start the database server using:/usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data/ -l logfile start

2.1.7 编辑配置开启远程连接

cd /usr/local/postgresql/data
cp postgresql.conf postgresql.conf-bak
cp pg_hba.conf pg_hba.conf-bak
vim postgresql.conf
listen_addresses = '*'
port = 5432vim pg_hba.conf
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust
加入以下一行
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是拒绝认证。

2.1.8 启动登录并设置密码

启动
pg_ctl start -l /usr/local/postgresql/log/pg_server.log
登录并设置数据库postgres用户密码
[postgres@localhost log]$ psql
psql (11.4)
Type "help" for help.
postgres=# \password

三、使用

3.1 修改postgres密码

psql -U postgres 登录数据库,执行后提示符变为 'postgres=#'  -U 指定用户
ALTER USER postgres WITH PASSWORD 'postgres';  设置postgres用户密码为postgres

3.2 命令

3.2.1 停止

#-D /usr/local/postgresql/data/ 可以不加因为环境变量中已经指定了
pg_ctl stop -l /usr/local/postgresql/log/pg_server.log -D /usr/local/postgresql/data/

3.2.2 启动

#-D /usr/local/postgresql/data/ 可以不加因为环境变量中已经指定了
pg_ctl start -l /usr/local/postgresql/log/pg_server.log -D /usr/local/postgresql/data/

3.2.3 重新加载配置文件

su - postgres
pg_ctl -D /usr/local/postgresql/data/ reload

3.3 命令远程连接

# -h指定主机IP -U指定用户 -d 指定数据  postgres是默认数据库
psql -h 192.168.8.10 -U postgres -d postgres

3.4 创建数据库

psql -h 192.168.8.10 -U postgres -d postgres
#创建
postgres=# create database hxl;
CREATE DATABASE
#进入hxl数据库
postgres=# \c hxl

3.5 基本命令

3.5.1 查看系统中现存的数据库

template1=# \l

3.5.2 退出客户端程序psql

template1=# \q

3.5.3 切换到某个数据库

template1=# \c 从一个数据库中转到另一个数据库中,如template1=# \c sales 从template1转到sales

3.5.4 查看当前数据库的表

template1=# \dt

3.5.5 查看表结构

template1=# \d 表名
template1=# \di 查看索引

3.5.5 查看索引

template1=# \di

3.6 创建表

3.6.1 表定义字段并插入信息

project=# create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);
project=# create table person(id integer, name text);
project=# insert into person values (1, 'hxl');
project=# select * from person;

3.7 查询

3.7.1 查询用户表

select * from pg_shadow;

3.7.2 查询当前数据库

select current_database();

3.7.3 查询当前登录用户信息

select * from pg_stat_activity where state = 'active';

3.8 删除数据库

 drop database [数据库名];

3.9 删除表

drop table [表名];

3.10 重命名表

alter table [表名A] rename to [表名B];

3.11 表内基本操作

3.11.1 在已有的表里添加字段

alter table [表名] add column [字段名] [类型];

3.11.2 删除表中的字段

alter table [表名] drop column [字段名];

3.11.3 重命名一个字段

alter table [表名] rename column [字段名A] to [字段名B];

3.11.4 给一个字段设置缺省值

alter table [表名] alter column [字段名] set default [新的默认值];

3.11.5 去除缺省值

alter table [表名] alter column [字段名] drop default;

3.11.6 在表中插入数据

insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);

3.11.7 修改表中的某行某列的数据

update [表名] set [目标字段名]=[目标值] where [该行特征];

3.11.8 删除表中某行数据

delete from [表名] where [该行特征];

删空整个表

delete from [表名];

四、解释

4.1 数据目录结构

base 每个 database 会在 base 目录下有一个子目录3
global  Postgres 自己的 meta 数据库存放的地方(全局 DB)
PG_VERSION  #pg版本,如10
base/  #每个 database 会在 base 目录下有一个子目录,存储数据库文件
global/   #存放的文件用于存储全局的系统表信息和全局控制信息
pg_commit_ts/  #包含已提交事务的时间
pg_dynshmem/  #包含动态共享内存子系统使用的文件
pg_hba.conf
pg_ident.conf
pg_logical/  #包含逻辑解码的状态数据
pg_multixact/  #包含多事务状态数据(等待锁定的并发事务
pg_notify/   #包含LISTEN/NOTIFY状态数据
pg_replslot/  #包含复制槽数据
pg_serial/   #包含了已经提交的序列化事务的有关信息
pg_snapshots/  #包含导出的快照
pg_stat/  #包含统计子系统的永久文件
pg_stat_tmp/  #包含统计子系统的临时文件
pg_subtrans/  #包含子事务状态数据
pg_tblspc/   #包含表空间的符号链接
pg_twophase/   #包含预备事务的状态文件
pg_wal/  #包含wal日志
pg_xact/
postgresql.auto.conf   #一个用于存储由ALTER SYSTEM 设置的配置参数的文件
postgresql.conf
postmaster.opts   #一个记录服务器最后一次启动时使用的命令行参数的文件
server.log  #pg操作日志,如果有报错也会记录在这里

4.2 配置文件

pg_hba.conf:配置对数据库的访问权限;
postgresql.conf:配置PostgreSQL数据库服务器的相应的参数

Postgresql安装及使用相关推荐

  1. PostgreSQL — 安装

    目录 文章目录 目录 安装(基础版本 9.2.24) 安装(特定版本 12.2) 登录 远程登录 创建新的用户和新的数据库 安装(基础版本 9.2.24) # 安装 PG 服务器 yum instal ...

  2. 【转帖】Windows下PostgreSQL安装图解

    Windows下PostgreSQL安装图解 这篇文章主要为大家介绍了如果在Windows下安装PostgreSQL数据库的方法,需要的朋友可以参考下 现在谈起免费数据库,大多数人首先想到的可能是My ...

  3. linux7安装pgsql数据库,CentOS7下PostgreSQL安装

    环境:CentOS 7 版本:postgresql11 安装repo源 yum install https://download.postgresql.org/pub/repos/yum/reporp ...

  4. PostgreSQL安装和简单配置

    PostgreSQL安装与使用 目录 依赖包的安装 源码编译和安装 初始化数据库集簇 简单配置 依赖包安装 PostgreSQL源码安装依赖以下四个软件包 readline zlib flex bis ...

  5. Windows上PostgreSQL安装配置教程

    这篇文章主要为大家详细介绍了Windows上PostgreSQL安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PostgreSQL的扩展PostGIS是最著名的开源GIS数据库.  ...

  6. post修改服务器数据源,postgresql安装及配置超详细教程

    1. 安装 根据业务需求选择版本,官网下载 初始化数据库 执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库: linux 系统用户 postgres:管理数据库的系统用 ...

  7. postgresql 安装使用

    PostgreSQL 中文社区在线文档:http://www.postgres.cn/document        http://shouce.jb51.net/postgresql/ Postgr ...

  8. postgresql安装之后修改默认用户密码

    重新设置postgres用户的密码步骤: 1.关闭数据库服务 2.到数据库的安装目录data文件夹下 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录) 3.编辑修 ...

  9. 【PostgreSQL】PostgreSQL安装步骤

    记录一下在Linux CentOS 7中安装PostgresSQL的整个过程以及数据库配置等. 先检查一下是否安装: rpm -qa | grep postgres 检查PostgreSQL 是否已经 ...

  10. PostgreSQL安装、验证安装、pgAdmin初步简单使用

    PostgreSQL安装.验证安装.pgAdmin初步简单使用 引言 数据库安装 基本步骤 注意事项 重新安装 安装验证 SQL shell (psql)方式验证 pgAdmin初步使用 启动pgAd ...

最新文章

  1. legend2---开发日志13(layer_mobile的content传入dom 出现【object object】如何解决)
  2. Macbook 无法找到Centos启动盘问题解决
  3. HDU 4616 Game 树形DP
  4. python3-字符串常用操作
  5. exchange EWS 开发随笔二
  6. 【车间调度】基于matlab粒子群算法求解车间调度问题【含Matlab源码 013期】
  7. 扫雷游戏网页版_两个在线版复古小游戏,嗯还是熟悉的味道!
  8. Java三大特性详解
  9. SpringBoot整合Minio实现文件上传、下载
  10. 微商城之业务逻辑架构设计,B2B2C模式流程设计-OctShop免费开源商城系统
  11. Google 镜像站搜集
  12. 西藏,赴一场心灵之约
  13. 查看Java元空间区域
  14. 会声会影2022视频编辑软件专业版
  15. win7原版映像中添加usb3.0驱动
  16. 科教导刊杂志科教导刊杂志社科教导刊编辑部2022年第9期目录
  17. ASEMI代理ON/安森美FGH40N60SMD原厂渠道车规级IGBT
  18. Go语言系列——01-HelloWorld、02-命名规范、03-变量、04-类型、05-常量、06-函数(Function)、07-包、08-if-else语句、09-循环、10-switch语句
  19. 游戏人工智能——A*寻路算法实践
  20. Android 打印组件,Android打印自定义文档

热门文章

  1. 【编程游戏】贺岁放礼花。(点燃续帖1-131楼lshdic的焰火)
  2. 2019南京大学软件学院9月夏令营(预推免)小结
  3. 计划任务linux时间,系统运维|在 Linux 中怎么使用 cron 计划任务
  4. 跨平台SCADA系统(组态软件)开发4
  5. 苹果认证Apple Store Connenct api的使用
  6. 自动化缺陷检测系统03---算法与最终实现效果展示
  7. 怎么把音频的声音调大?
  8. RK3588 MPP解码句柄泄露问题记录
  9. 轻松集福,支付宝集五福活动完整攻略
  10. 正版推荐 - Fences 4 – 让你的桌面更加整洁与高效的桌面图标文件整理工具软件!