【linux】【PostgreSQL】PostgreSQL安装
前言
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。
安装
1.下载PostgreSQL https://www.enterprisedb.com/download-postgresql-binaries

下载相应版本通过ftp上传到服务器的/home路径下,然后解压,得到pgsql文件夹
2.创建pgsql用户并创建密码:
[root@localhost home]# useradd postgres
[root@localhost home]# passwd postgres
更改用户 postgres 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
注意:这里设置密码是linux用户postgres的登录密码,不是pgsql服务器的密码
3.创建pgsql的数据目录并赋权限
# 当前目录在/home下
[root@localhost home]# pwd
/home # 创建/home/pgsql/pgsql_data
[root@localhost home]# mkdir pgsql/pgsql_data # 赋予pgsql_data文件夹 postgres用户权限
[root@localhost home]# chown postgres:postgres pgsql/pgsql_data
4.初始化数据库
切换到postgres用户来操作数据库,pgsql数据库就以postgres为默认用户,执行: su - postgres 切换
# 切换到postgres用户
[root@localhost home]# su postgres -bash-4.2$ pwd
/home # 初始化数据库
-bash-4.2$ /home/pgsql/bin/initdb -D /home/pgsql/pgsql_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 /home/pgsql/pgsql_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 ... ok WARNING: 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: /home/pgsql/bin/pg_ctl -D /home/pgsql/pgsql_data -l logfile start
5.启动数据库
初始化数据库时,最后打印出启动数据库命令: /home/pgsql/bin/pg_ctl -D /home/pgsql/pgsql_data -l logfile start
这里-l指定日志文件位置,这里直接输出在家目录下的logfile中,这个可以自己指定,这里-D指定数据目录,默认如果不加数据目录直接报错找不到,可以刚才说的环境变量配置文件中~/.bash_profile加入一行: export PGDATA=/home/pgsql/pgsql_data 然后source进去即可,这样pgsql会自动去找PGDATA环境变量值,找不到才会报错
启动之后此时执行: ps -ef | grep postgres 就可以看到相关进程如下:
-bash-4.2$ /home/pgsql/bin/pg_ctl -D /home/pgsql/pgsql_data -l /home/pgsql/logfile start
waiting for server to start.... done
server started # 查看postgres进程
-bash-4.2$ ps -ef | grep postgres
root 20480 4206 0 16:10 pts/0 00:00:00 su - postgres
postgres 20481 20480 0 16:10 pts/0 00:00:00 -bash
postgres 20544 1 0 16:16 pts/0 00:00:00 /home/pgsql/bin/postgres -D /home/pgsql/pgsql_data
postgres 20546 20544 0 16:16 ? 00:00:00 postgres: checkpointer process
postgres 20547 20544 0 16:16 ? 00:00:00 postgres: writer process
postgres 20548 20544 0 16:16 ? 00:00:00 postgres: wal writer process
postgres 20549 20544 0 16:16 ? 00:00:00 postgres: autovacuum launcher process
postgres 20550 20544 0 16:16 ? 00:00:00 postgres: stats collector process
postgres 20551 20544 0 16:16 ? 00:00:00 postgres: bgworker: logical replication launcher
postgres 20552 20481 0 16:16 pts/0 00:00:00 ps -ef
postgres 20553 20481 0 16:16 pts/0 00:00:00 grep --color=auto postgres
pgsql默认的端口号为5432
-bash-4.2$ netstat -tunlp | grep 5432
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 20544/postgres
tcp6 0 0 ::1:5432 :::* LISTEN 20544/postgres
6.开启远程访问
# 找到pgsql_data文件夹
[root@localhost pgsql_data]# pwd
/home/pgsql/pgsql_data [root@localhost pgsql_data]# ls
base pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf postmaster.opts
global pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf postmaster.pid # vi修改postgresql.conf
[root@localhost pgsql_data]# vi postgresql.conf 将 listen_addresses 前的#删掉,然后把localhost改成 *
重启即可。
/home/pgsql/bin/pg_ctl -D /home/pgsql/pgsql_data -l /home/pgsql/logfile restart
# 修改重启前 127.0.0.1:5432
[root@localhost pgsql_data]# netstat -tunlp | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 20544/postgres
tcp6 0 0 ::1:5432 :::* LISTEN 20544/postgres # 修改重启后 0.0.0.0:5432
[root@localhost pgsql_data]# netstat -tunlp | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 20595/postgres
tcp6 0 0 :::5432 :::* LISTEN 20595/postgres
7.连接数据库
[root@localhost bin]# /home/pgsql/bin/psql -h 127.0.0.1 -d postgres -U postgres -p 5432
psql.bin (10.10)
Type "help" for help. postgres=#
其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中的数据库,默认也是postgres,-U指定用户,默认是当前用户,-p 指定端口号,默认是"5432"
查看当前数据库列表
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
默认postgres,template0和1这3个库是不允许操作的,创建新的数据库执行: CREATE DATABASE test WITH OWNER=postgres ENCODING='UTF-8'; 这样就创建好了数据库test,然后可以执行命令 \c test 切换当前数据库为test,然后执行 \d 可以查看当前数据库下的所有表:
# 创建test数据库
postgres=# CREATE DATABASE test WITH OWNER=postgres ENCODING='UTF-8';
CREATE DATABASE
# 查看所有数据库列表
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
(4 rows)
# 切换到test数据库
postgres=# \c test
You are now connected to database "test" as user "postgres". # 查看test数据库的所有表
test=# \d
Did not find any relations.
创建一个表
# 创建一个表student
test=# CREATE TABLE student (
test(# id integer NOT NULL,
test(# name character(32),
test(# number char(5),
test(# CONSTRAINT student_pkey PRIMARY KEY (id)
test(# );
CREATE TABLE # 查看student表结构
test=# \d student
Table "public.student"
Column | Type | Collation | Nullable | Default
--------+---------------+-----------+----------+---------
id | integer | | not null |
name | character(32) | | |
number | character(5) | | |
Indexes:
"student_pkey" PRIMARY KEY, btree (id) # 插入student表一条数据
test=# INSERT INTO student (id,name,number) VALUES (1,'张三','1023');
INSERT 0 1 # 查看插入的数据
test=# SELECT * FROM student WHERE id=1;
id | name | number
----+------------------------------------+--------
1 | 张三 | 1023
(1 row) # \q退出pgsql
test=# \q
[root@localhost bin]#
【linux】【PostgreSQL】PostgreSQL安装的更多相关文章
- Linux下的PostgreSQL简单安装手册
1. 安装环境 linux版本: CentOS release 6.2 (Final) pg版本 : postgresql-9.5.0 2. pg数据库下载地址 --http ...
- Linux环境PostgreSQL源码编译安装
Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...
- 在linux系统下检查postgresql数据库安装,登录数据库及简单的查看数据库
1. 检查Linux系统是否安装数据库 首先查看自己的系统是否安装了postgresql数据库命令如下: rpm -qa | grep postgresql 如果没有显示查询结果(如下图所示)说 ...
- Linux——CentOS 6.3下PostgreSQL 的安装与配置
一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库 都不具备.这个起源于伯 ...
- 【转】postgresql 9.4 在linux环境的安装步骤详解
本文章来为各位介绍一篇关于postgresql 9.4 在linux环境的安装步骤详解,希望文章能够对各位新手朋友带来帮助的哦. 环境说明系统:centos 6.4 64位软件:postgresql ...
- Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
近日需要将PostgreSQL数据库从Windows中迁移到Linux中,Linux CentOS 7 安装PostgreSQL 9.5.17 安装过程 特此记录. 安装环境: 数据库:Postgre ...
- CentOS 6.3下PostgreSQL 的安装与配置
一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克 ...
- postgresql编译安装与调试(二)
接前文postgresql编译安装与调试(一),继续说说postgresql的编译安装与调试. 上一篇已经详细说明了如何在Linux系统上编译安装postgresql,这次我们在此基础上简单讲讲如何在 ...
- 关于linux上postgresql的一些理解
刚开始接触postgresql,安装后就有一个默认用户postgres,而且在启动postgresql后只能通过切换到linux的postgres用户才能登录数据库进行操作,和Mysql的登录认证居然 ...
- postgresql数据库安装及简单操作
自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系 ...
随机推荐
- 05 requests模块进阶
1. 基于requests模块的代理IP操作 - 爬虫中为什么需要使用代理 一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可 ...
- springboot整合webservice采用CXF技术
转载自:https://blog.csdn.net/qq_31451081/article/details/80783220 强推:https://blog.csdn.net/chjskarl/art ...
- js 设计模式&&query
1. 语法: try{ //需要执行的代码 }catch(e){ //错误处理 e程序遇到错误时的报错信息 } 2.惰性函数: 函数在第一次 ...
- MSIL实用指南-返回结果
一个方法体执行完指令后,必须要完成调用并返回,这是要使用Ret指令.Ret指令的详细解释是从当前方法返回,并将返回值(如果存在)从被调用方的计算堆栈推送到调用方的计算堆栈上.就是说如果计算堆栈上没有变 ...
- Win10中用yolov3训练自己的数据集全过程(VS、CUDA、CUDNN、OpenCV配置,训练和测试)
在Windows系统的Linux系统中用yolo训练自己的数据集的配置差异很大,今天总结在win10中配置yolo并进行训练和测试的全过程. 提纲: 1.下载适用于Windows的darknet 2. ...
- 爬虫——cookie模拟登陆
cookie适用于抓取需要登录才能访问的页面网站 cookie和session机制 http协议为无连接协议,cookie: 存放在客户端浏览器,session: 存放在Web服务器 人人网登录案例 ...
- python控制窗口显示隐藏
import win32con # 定义 import win32gui # 界面 import time # 时间 QQ= win32gui.FindWindow("TXGuiFounda ...
- 【Offer】[23] 【链表中环的入口结点】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 一个链表中包含环,如何找出环的入口结点?  思路分析 判断链表中是否有环:用快慢指针的方法,慢指针走一步,快指针走两步,如果快指针追上 ...
- 【入门】广电行业DNS、DHCP解决方案详解(三)——DNS部署架构及案
[入门]广电行业DNS.DHCP解决方案详解(三)——DNS部署架构及案 DNS系统部署架构 宽带业务DNS架构 互动业务DNS架构 案例介绍 案例一 案例二 本篇我们将先介绍DNS系统部署架构体系, ...
- C#客户端程序Visual Stadio远程调试
一,需求来源 在开发过程中,可能会要使用Win7 ,Win8 ,Win10等不同版本的系统去做兼容性调试,也有时候会去针对特别的显卡,无线网卡等等硬件设备的机器做优化,有一种较优的方案,那就是使用Vi ...