百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

全新PostgreSQL 13与PostGIS一站式最全安装

connygpt 2024-10-16 08:45 7 浏览

【如果有用,请关注并转发,谢谢~~】

PostgreSQL 13对索引和查找系统(lookup system)进行了重大改进,使大型数据库受益,包括节省了空间并提高了索引的性能,使用聚合或分区使查询的响应时间更快,使用增强的统计信息时更好的查询计划等等。

PostgreSQL 13可以有效地处理标准数据库索引B-tree索引中的重复数据。这降低了B树索引所需的总体空间使用量,同时提高了整体查询性能。还有更多新的提升,这里先不再赘述。

CentOS install PostgreSQL

  1. yum install postgresql-server
# 安装RPM Repository:
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装PostgreSQL:
yum install -y postgresql13-server
# 初始化数据并设置自动启动(数据库存储位置:/var/lib/pgsql/13/data):

/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl enable postgresql-13
systemctl start postgresql-13

Log into PostgreSQL

psql -U postgres
-bash-4.2$  psql
# 给postgres用户设置密码修改

postgres= # \password postgres
psotgres=#
## 查询pg扩展安装情况

psotgres=# SELECT name, default_version,installed_version
FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';
## 退出psql

psotgres=# \q
exit

安装PostGIS扩展插件

# 安装EPEL源
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum list postgis*   
# 安装PostGIS
yum install -y postgis31_13.x86_64


备注:提示依赖错误需要安装EPEL的源,对应的每个系统不一样,如下所示:

# CentOS 7, RHEL 7 64-bit:
 rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# CentOS 6, RHEL 6 64-bit:(这里根据自已的系统版本作选择)
 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

提示:还有一些系统的,可以在上级目录找到(http://dl.fedoraproject.org/pub/epel/)。

开启PostgreSQL的PostGIS扩展并验证

// 开启插件
# su postgres
# psql
// 针对每个数据库,需要单独开启pgsql的插件
postgres=# create extension postgis;
postgres=# create extension postgis_topology;
postgres=# create extension fuzzystrmatch;
postgres=# create extension address_standardizer;
postgres=# create extension address_standardizer_data_us;
postgres=# create extension postgis_tiger_geocoder;

// 测试验证

  -- 创建表
postgres=# create table mytable (id serial primary key,geom geometry(point, 26910),name varchar(128));
-- 添加索引
postgres=# create index mytable_gixon mytableusing gist (geom);
-- 添加一条数据
postgres=# insert into mytable (geom) values (st_geomfromtext('point(0 0)', 26910));
-- 测试查询,正常能查出一条数据
postgres=# select id, namefrom mytablewhere st_dwithin(geom,st_geomfromtext('point(0 0)', 26910),1000);

远程连接数据库

安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。

配置远程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf。

pg_hba.conf:配置对数据库的访问权限,

postgresql.conf:配置PostgreSQL数据库服务器的相应的参数。

下面 介绍配置的步骤:

1.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):

# TYPE DATABASE  USER    CIDR-ADDRESS     METHOD
# "local" is for Unix domain socket connections only
local all    all               trust
# IPv4 local connections:
host  all    all    127.0.0.1/32     trust
host  all    all    192.168.1.0/24    md5
host  all    all    0.0.0.0/0    md5
# IPv6 local connections:
host  all    all    ::1/128       trust

其中,第6行是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证;数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问!。

第7行是新添加的内容,表示允许所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。

2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受本机localhost的连接请求。

将#- Connection Settings到# -TCP settings之间每行开头的#去掉,将行内容修改为listen_addresses=’*'来允许数据库服务器监听来自任何主机的连接请求。


3、重启postgresql

system restart postgresql-13

使用 pg_dump和pg_restore 备份和还原

备份某个database,备份结果以自定义压缩格式输出:

Ident authentication failed for user “postgres” 注意IP 不要使用 localhost, 使用真实的IP,否则需要修改配置文件来支持。

pg_dump -h 192.168.17.130  -p 5432 -U postgres -F c -b -v -f    /home/soft/dbname  dbname

# 输入IP 端口、用户名。 输入的位置: /home/soft/dbname; dump的数据库为 dbname

# 需要修改这几个不同的位置即可。

创建数据库和数据库关联用户;

CREATE USER root  WITH PASSWORD 'root';
CREATE DATABASE tserver OWNER root;

根据备份文件dbname进行

pg_restore -h 192.168.17.131 -p 5432 -U root -W -d dbname -v ~/software/dbname

其他常用操作

$ su - postgres
-bash-4.2$ psql
Password:******

postgres=#

常用命令

? 列出命令行

\h 命令的帮助文件

\q 退出接口

\d 列出当前数据库的表,试图(views),队列(sequences)

\du 列出当前数据库的角色

\dt列出当前数据库表

\l 列出数据库

\password xxx 更改xxx的密码

\conninfo 当前连接信息(不一定有,具体可使用?查看哪些命令可用)

创建数据库新用户,如 dbuser:

postgres=# CREATE USER dbuser WITH PASSWORD '*****';

创建用户数据库,如exampledb:

postgres=# CREATE DATABASE exampledb OWNER dbuser;

将exampledb数据库的所有权限都赋予dbuser:

postgres=# GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;

使用命令 \q 退出psql:

postgres=# \q

切换数据库:

postgres=# \c [database_name] 

切换用户:

postgres=# \c - [user_name]

创建Linux普通用户,与刚才新建的数据库用户同名,如 dbuser:

$ sudo adduser dbuser
$ sudo passwd dbuser

以dbuser的身份连接数据库exampledb:

su - dbuser
Password: ******
[dbuser@localhost~]$ psql -d exampledb

【如果有用,请关注并转发,谢谢~~】

相关推荐

自学Python,写一个挨打的游戏代码来初识While循环

自学Python的第11天。旋转~跳跃~,我~闭着眼!学完循环,沐浴着while的光芒,闲来无事和同事一起扯皮,我说:“编程语言好神奇,一个小小的循环,竟然在生活中也可以找到原理和例子”,同事也...

常用的 Python 工具与资源,你知道几个?

最近几年你会发现,越来越多的人开始学习Python,工欲善其事必先利其器,今天纬软小编就跟大家分享一些常用的Python工具与资源,记得收藏哦!不然下次就找不到我了。1、PycharmPychar...

一张思维导图概括Python的基本语法, 一周的学习成果都在里面了

一周总结不知不觉已经自学Python一周的时间了,这一周,从认识Python到安装Python,再到基本语法和基本数据类型,对于小白的我来说无比艰辛的,充满坎坷。最主要的是每天学习时间有限。只...

三日速成python?打工人,小心钱包,别当韭菜

随着人工智能的热度越来越高,许多非计算机专业的同学们也都纷纷投入到学习编程的道路上来。而Python,作为一种相对比较容易上手的语言,也越来越受欢迎。网络上各类网课层出不穷,各式广告令人眼花缭乱。某些...

Python自动化软件测试怎么学?路线和方法都在这里了

Python自动化测试是指使用Python编程语言和相关工具,对软件系统进行自动化测试的过程。学习Python自动化测试需要掌握以下技术:Python编程语言:学习Python自动化测试需要先掌握Py...

Python从放弃到入门:公众号历史文章爬取为例谈快速学习技能

这篇文章不谈江流所专研的营销与运营,而聊一聊技能学习之路,聊一聊Python这门最简单的编程语言该如何学习,我完成的第一个Python项目,将任意公众号的所有历史文章导出成PDF电子书。或许我这个Py...

【黑客必会】python学习计划

阅读Python文档从Python官方网站上下载并阅读Python最新版本的文档(中文版),这是学习Python的最好方式。对于每个新概念和想法,请尝试运行一些代码片段,并检查生成的输出。这将帮助您更...

公布了!2025CDA考试安排

CDA数据分析师报考流程数据分析师是指在不同行业中专门从事行业数据搜集、整理、分析依据数据作出行业研究评估的专业人员CDA证书分为1-3级,中英文双证就业面广,含金量高!!?报考条件:满18...

一文搞懂全排列、组合、子集问题(经典回溯递归)

原创公众号:【bigsai】头条号:程序员bigsai前言Hello,大家好,我是bigsai,longtimenosee!在刷题和面试过程中,我们经常遇到一些排列组合类的问题,而全排列、组合...

「西法带你学算法」一次搞定前缀和

我花了几天时间,从力扣中精选了五道相同思想的题目,来帮助大家解套,如果觉得文章对你有用,记得点赞分享,让我看到你的认可,有动力继续做下去。467.环绕字符串中唯一的子字符串[1](中等)795.区...

平均数的5种方法,你用过几种方法?

平均数,看似很简单的东西,其实里面包含着很多学问。今天,分享5种经常会用到的平均数方法。1.算术平均法用到最多的莫过于算术平均法,考试平均分、平均工资等等,都是用到这个。=AVERAGE(B2:B11...

【干货收藏】如何最简单、通俗地理解决策树分类算法?

决策树(Decisiontree)是基于已知各种情况(特征取值)的基础上,通过构建树型决策结构来进行分析的一种方式,是常用的有监督的分类算法。决策树算法是机器学习中的一种经典算法,它通过一系列的规则...

面试必备:回溯算法详解

我们刷leetcode的时候,经常会遇到回溯算法类型题目。回溯算法是五大基本算法之一,一般大厂也喜欢问。今天跟大家一起来学习回溯算法的套路,文章如果有不正确的地方,欢迎大家指出哈,感谢感谢~什么是回溯...

「机器学习」决策树——ID3、C4.5、CART(非常详细)

决策树是一个非常常见并且优秀的机器学习算法,它易于理解、可解释性强,其可作为分类算法,也可用于回归模型。本文将分三篇介绍决策树,第一篇介绍基本树(包括ID3、C4.5、CART),第二篇介绍Ran...

大话AI算法: 决策树

所谓的决策树算法,通俗的说就是建立一个树形的结构,通过这个结构去一层一层的筛选判断问题是否好坏的算法。比如判断一个西瓜是否好瓜,有20条西瓜的样本提供给你,让你根据这20条(通过机器学习)建立起...