首页 > 数据库 >pgsql数据库安装和初始化

pgsql数据库安装和初始化

时间:2023-12-06 11:38:08浏览次数:41  
标签:初始化 postgresql 数据库 sudo apt cd pgsql install PostgreSQL

!/bin/bash

获取当前目录的绝对路径

current_directory=$(readlink -f "$PWD")

echo '-------------------------pgsql安装开始-----------------------'

创建文件仓库配置

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

导入仓库签名密钥

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

更新软件包列表

sudo apt update

安装 PostgreSQL 13

sudo apt -y install postgresql-13

设置 PostgreSQL 用户密码

echo postgres:123456 | chpasswd

备份 PostgreSQL 数据目录

sudo rsync -av /var/lib/postgresql /db

移动 PostgreSQL 数据目录

sudo mv /var/lib/postgresql/13/main /var/lib/postgresql/13/main.bak

修改 PostgreSQL 配置文件

sed -i 's#/var/lib/postgresql/13/main#/db/postgresql/13/main#g' /etc/postgresql/13/main/postgresql.conf
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /etc/postgresql/13/main/postgresql.conf

修改 PostgreSQL 访问控制

sudo sed -i "s/host\sall\sall\s127.0.0.1/32\smd5/host all all 0.0.0.0/0 md5/g" /etc/postgresql/{version}/main/pg_hba.conf

允许防火墙访问 PostgreSQL 端口

sudo ufw allow 5432

启动 PostgreSQL 服务

sudo systemctl start postgresql

查看 PostgreSQL 服务状态

sudo systemctl status postgresql

删除备份的 PostgreSQL 数据目录

sudo rm -Rf /var/lib/postgresql/13/main.bak

更改 PostgreSQL 用户家目录

cd /
mkdir datadisk
sudo usermod --home '/datadisk' postgres
sudo chown postgres:postgres /datadisk
sudo systemctl restart postgresql
sudo systemctl status postgresql
cd /datadisk

创建 PostgreSQL 命令行配置文件

cat < .psqlrc
\pset null 'NULL'
\pset border 2
\set PROMPT1 '%n@%/#'
\timing on
EOF

echo '-------------------------pgsql安装结束-----------------------'

echo '-------------------------pgsql插件安装开始-----------------------'

安装 Python3 pip

sudo apt -y install python3-pip

安装 pgxnclient

sudo -H pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pgxnclient

安装 PostgreSQL 开发依赖

sudo apt -y install postgresql-server-dev-13

安装必要的库

sudo apt -y install libicu-dev

创建工具目录

cd /db
mkdir tools
cd tools

复制 pg_bigm 源码

cp $current_directory/pg_bigm-1.2-20200228.tar.gz /db/tools

解压 pg_bigm

cd /db/tools
tar zxf pg_bigm-1.2-20200228.tar.gz
cd pg_bigm-1.2-20200228

make USE_PGXS=1 PG_CONFIG=/usr/bin/pg_config
make USE_PGXS=1 PG_CONFIG=/usr/bin/pg_config install

安装依赖

sudo apt install libssl-dev
sudo apt install zlib1g-dev
sudo apt install libreadline-dev

安装 pg_repack

sudo pgxn install pg_repack
sudo apt install postgresql-13-repack

安装 clickhouse_fdw

sudo apt install libcurl4-openssl-dev
sudo apt install uuid-dev
cd /db/tools
sudo git clone https://github.com/adjust/clickhouse_fdw.git
cd clickhouse_fdw

mkdir build && cd build
sudo apt-get install pkg-config
sudo apt-get install cmake
cmake ..
make && make install

安装 scws

sudo apt-get install build-essential
cd /db/tools
wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar xjf -
cd scws-1.2.3
./configure
sudo make install

安装 zhparser

cd /db/tools
git clone https://github.com/amutu/zhparser.git
cd zhparser
make && sudo make install

安装 rum

cd /db/tools
git clone https://github.com/postgrespro/rum
cd rum
make USE_PGXS=1 && sudo make USE_PGXS=1 install

echo '-------------------------pgsql插件安装结束-----------------------'

echo '-----注意事项:进入数据库 执行语句创建extention-------:
CREATE EXTENSION IF NOT EXISTS pg_bigm;
CREATE EXTENSION pg_repack;
-- 启用扩展
CREATE EXTENSION clickhouse_fdw;
-- 创建数据库链接
CREATE SERVER clickhouse_svr FOREIGN DATA WRAPPER clickhouse_fdw OPTIONS(dbname 'default');
-- 用户映射
CREATE USER MAPPING FOR CURRENT_USER SERVER clickhouse_svr OPTIONS (user 'default', password '9dje3RtgO7eeHb');
-- 创建外部表
CREATE FOREIGN TABLE dwd_user_info
(
user_infoid text,
code text,
name text,
createdon timestamp
)
SERVER clickhouse_svr;
CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION zh(PARSER = zhparser); -- 添加配置
ALTER TEXT SEARCH CONFIGURATION zh ADD MAPPING FOR n,v,a,i,e,l,j WITH simple; --设置分词规则 (n 名词 v 动词等)
alter system set zhparser.dict_in_memory = 'on';
CREATE EXTENSION rum;
create index odp_accountbase_name_rum_idx on odp_accountbase using rum(to_tsvector('zh', name));
'

标签:初始化,postgresql,数据库,sudo,apt,cd,pgsql,install,PostgreSQL
From: https://www.cnblogs.com/issac-9608/p/17879108.html

相关文章

  • 【数据库概论】第三章 数据库完整性
    数据库的完整性指的是数据的正确性和相融性。数据的正确性是指符合现实世界语意、反映当前实际情况;数据的相容性指的是数据库对同一对象在不同关系表中的数据是符合逻辑的,比如学生的学号一定是唯一的,学生所属的专业一定是专业表中有的专业等,数据的完整性主要是防止数据库中出现不......
  • 数据库的锁和MVCC机制
    数据库的锁机制,是数据库为了保证数据的一致性和完整性,使各种共享资源在被并发访问时变得有序所设计的一种规则。之前讲到过事务,提到事务的ACID原则和隔离的级别一条SQL的背后故事(三)目前较为常见的三种并发控制机制:分别是悲观并发控制(锁)、乐观并发控制(乐观锁)和多版本并发......
  • 【数据库概论】第二章 关系型数据库
    2.1关系数据库2.1.1关系关系模型的数据结构十分简单,只包含单一的数据结构——关系。在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。关系模型的数据结构虽然简单却能表达丰富的语义。在关系模型中,现实世界的实体以及实体之间的联机都是用单一的关系结构类型来表示。......
  • SQL 数据库语句- 创建和管理数据库
    SQLCREATEDATABASE语句SQLCREATEDATABASE语句用于创建一个新的SQL数据库。语法CREATEDATABASE数据库名称;示例以下SQL语句创建了一个名为"testDB"的数据库:CREATEDATABASEtestDB;通过这个简单的语句,你可以成功地创建一个名为"testDB"的数据库。记得在实......
  • 数据库安全性
    数据库的不安全因素:非授权用户对数据库的恶意存取和破坏数据库中重要或敏感的数据被泄露安全环境的脆弱性安全性描述TCSEC/TDI内容:定义了数据库管理系统的设计与实现中需要满足和用以进行安全性级别评估的标准,从4个方面描述安全性级别划分的指标,即安全策略、责任、保证和......
  • 数据库总结复习(sql应用题 二)
    目录前言关系代数关系间运算条件表达式使用案例语法树例子前言本文针对考纲上的30分sql应用题所涉及到的知识进行归纳总结。分为两篇文章,本篇为关系代数相关知识点。关系代数关系间运算关系和关系之间需要用到以下关系运算符:其中,连接从连接条件上分,等值连接,非等值连......
  • 【数据库概论】第一章 数据库概论
    1.1数据库系统概述1.1.1数据库的四个基本概念数据数据库数据库管理系统DBMS数据库系统DBS1.1.2数据库的特点数据结构化数据的共享性高、冗余度低并且易扩充数据独立性高数据由数据库管理系统统一管理和控制1.2数据模型1.1.1数据模型数据模型也是一种模型,他......
  • openGauss学习笔记-143 openGauss 数据库运维-例行维护-数据安全维护建议
    openGauss学习笔记-143openGauss数据库运维-例行维护-数据安全维护建议为保证openGauss数据库中的数据安全,避免丢失数据、非法访问数据等事故发生,请仔细阅读以下内容。143.1避免数据被丢失建议用户规划周期性的物理备份,且对备份文件进行可靠的保存。在系统发生严重错误的情况......
  • StackGres 数据库平台工程,使用 Citus + Patroni 创建生产级高可用分布式 PostgreSQL
    系列StackGres,可私有部署的云原生数据库平台工程StackGres 数据库平台工程功能介绍与快速上手StackGres1.6数据库平台工程集群配置管理(K8SPods/PostgreSQL/PgBouncer)StackGres1.6数据库平台工程,集群高可用(Patroni3管理)什么是ShardedCluster(分片集群)Sha......
  • 解读JetBrains 2023年开发者生态报告,MySQL仍是全球数据库顶流 | StoneDB数据库观察 #1
    :::hljs-center:::<br>:::hljs-right作者:宇亭:::<br>最近,全球知名的开发者工具公司JetBrains对外发布了《2023年开发者生态系统报告》,报告的具体内容,前几天已经有中文互联网的媒体解读了,由于我们是做数据库的,所以自然而然想要特别关注一下数据库的情况——结果在意料之......