win10安装配置使用PostgreSQL

这篇具有很好参考价值的文章主要介绍了win10安装配置使用PostgreSQL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

win10安装配置PostgreSQL

1 下载安装PostgreSQL

①进入官网https://www.postgresql.org/,点击页面中心处的download

也可以直接跳过下面的步骤(下面的步骤主要是为了帮助大家了解一般外国软件是如何从官网进入下载页面),直接进入下载页面,链接地址:

  • https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

②选择对应的操作系统,点击进入特定的下载页面

本文以windows10为例,点击windows

win10安装postgresql,其他,postgresql,数据库,服务器,教程
③进入windows的下载页面,然后点击download the installer
win10安装postgresql,其他,postgresql,数据库,服务器,教程
④选择对应系统的对应版本即可
win10安装postgresql,其他,postgresql,数据库,服务器,教程

下载完成后以管理员权限运行安装,安装过程都可以默认下一步

注意:如果双击.exe文件报错:
win10安装postgresql,其他,postgresql,数据库,服务器,教程

  • 是因为我们当前用户名中包含中文,导致安装过程,因此我们只需要将win10用户名改为英文的即可

2 配置PostgreSQL

2.1 配置环境变量

①右击win10桌面上的此电脑,选择属性,然后选择高级系统设置
win10安装postgresql,其他,postgresql,数据库,服务器,教程
②选择环境变量
win10安装postgresql,其他,postgresql,数据库,服务器,教程
③根据自己需求,看配置用户环境变量还是系统环境变量

用户环境变量,只针对当前用户,系统环境变量则针对该电脑所有用户

  • 一般配置系统环境变量

在系统环境变量下,选择新建
win10安装postgresql,其他,postgresql,数据库,服务器,教程

# 新建PG_HOME,对应的值填入自己postgre的安装目录
E:\database\PostgreSQL
# 在path下追加%PG_HOME%\bin\
%PG_HOME%\bin\
# 新建PG_DATA
E:\database\PostgreSQL\data

2.2 初始化

①安装完成后我们需要对数据库进行初始化,初始化方法是执行initdb.exe.
win10安装postgresql,其他,postgresql,数据库,服务器,教程

E:\database\PostgreSQL\data 初始化执行之前是空的,执行之后会看到很多文件
win10安装postgresql,其他,postgresql,数据库,服务器,教程

②修改data目录下的配置文件postgresql.conf

如果仅想本地访问则listen_addresses改为localhost,如果想配置都访问,则配置为*

#listen_addresses = 'localhost'		# what IP address(es) to listen on;
			# comma-separated list of addresses;
			# defaults to 'localhost'; use '*' for all
			# (change requires restart) 

3 启动并测试

因为我们开始配置了环境变量,所以任意位置进入cmd,然后执行

psql -U postgres

然后输入我们开始安装过程中设置的密码,即可:
win10安装postgresql,其他,postgresql,数据库,服务器,教程

  • 测试通过navicat连接
    win10安装postgresql,其他,postgresql,数据库,服务器,教程
    点击,测试连接,结果:
    win10安装postgresql,其他,postgresql,数据库,服务器,教程

4 相关命令

4.1 创建用户

# 创建用户
CREATE USER testUser WITH PASSWORD '*****';
# yaml中url配置:
# url: "postgres://user_name:pass_word@ip:port/database?sslmode=disable"
url: "postgres://s3batch_u:postgres@127.0.0.1:5432/s3batch?sslmode=disable"

4.2 注册为系统服务

pg_ctl register -N "postgresql" -D "C:\Program Files\PostgreSQL\your_postgresql_version\data" -U "your_username" -P "your_password"

# 或者
sc create postgresql binPath= "E:\database\PostgreSQL\bin\pg_ctl.exe runservice -N postgresql -D "E:\database\PostgreSQL\data" -w" start= auto

4.3 操作数据库或表

-- 以postgres用户角色登录postgresql数据库
psql -U postgres;

--
①postgres-#:短横杠的表明语句未结束,用分号标识结束
②postgres=#:postgres后面是等号的表明语句已经结束,可以开始一个新的语句
--

-- 切换数据库[以workflow_u的用户角色切换到workflow数据库]
\c workflow workflow_u

-- 展示当前数据库下所有的表
\d

-- 展示userinfo的表结构
\d userinfo


-- 创建表
CREATE TABLE userdetail
(
    uid integer,
    intro character varying(100),
    profile character varying(100) -- 类似于mysql的varchar(100)
)
WITH(OIDS=FALSE);

-- 添加记录
insert into userdetail (uid, intro, profile) values (1, '这是一个介绍', '这个是个人资料');

-- 查询表中记录记录[起始记录从0开始,每页5条数据]
select uid, intro, profile from public.userdetail offset 0 limit 5;

-- 根据创建时间降序排列
select uid,intro from userdetail  order by created_time desc offset 0 limit 1;

-- 删除表中的intro字段
alter table userdetail drop column intro;

-- 向表中添加name字段
alter table userdetail add column name character varying(100);

-- 更新表中记录
update userdetail set name = 'jack' where uid = 1;

-- 给uid添加主键
alter table userdetail drop constraint if exists userdetail_pkey, add primary key(uid);

-- 给name添加唯一索引
create unique index if not exists idx_userdetail_name on userdetail (name);

-- 添加时间字段,并插入一条记录 timestamp:2023-06-30 16:44:41.660549
alter table userdetail add column created_time timestamp;
-- insert into userdetail(uid, profile, name, created_time) values(4, 'intro4', 'tom4', ' 2022-06-30 16:44:41.660549');
insert into userdetail(uid, profile, name, created_time) values(2, '介绍2', 'tom', now());


-- 创建序列sequence
CREATE SEQUENCE uid_sequence
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
 
 -- 删除序列
 DROP SEQUENCE IF EXISTS uid_sequence;

   
-- 修改表结构,将 uid 设置为序列的默认值
ALTER TABLE userdetail 
    ALTER COLUMN uid SET DEFAULT nextval('uid_sequence'::regclass);    

-- 删除表
drop table userdetail;

# \l 列出所有数据库
\l

# \c 切换数据库
\c testbase

# \d 查询当前数据库下的所有表
\d 
# \d table_name 查看表结构

# \d table_name 查看表的信息(如果有索引也会展示出来)
\d mytable

# \di 查看数据库的所有索引,在postgres=#模式下执行
\di

# \q 退出控制台
\q 

4.4 备份与恢复

  1. SQL 转储
  2. 文件系统级别备份(冷备份)
  3. 在线热备份(归档)
4.4.1 SQL转储
①pg_dump:备份单数据库(xxx.dmp)
# 1 创建数据库
createdb pg
# 2 连接数据库
psql pg
# 3 创建测试表,插入数据
pg=# create table pg_test(a int);
pg=# insert into pg_test(a) values(1);
pg=# insert into pg_test(a) values(2);
# 4 查看数据
pg=# select * from tb;
# 5 备份
pg_dump pg > /usr/local/pgsql/backup/pg.dmp
# 6 删除数据库pg
dropdb pg
# 7 创建新数据库(恢复之前需要创建数据库)
createdb pg
# 8 恢复数据
psql pb < /usr/local/pgsql/backup/pg.dmp
# 9 查看数据是否恢复
pg=# select * from tb;

至此,数据已成功恢复!
注: pg_dump 可以对针对单表或者多表进行备份
如:

pg_dump databasename –t tablename1 –t tablename2 >filename

②pg_dumpall:备份所有数据库、角色、表空间

pg_dump 只能备份单个数据库,而且恢复的时候需要创建空数据库。 pg_dumpall 可以备份所有数据库,并且备份角色、表空间。

# 1 创建数据库
createdb pg1
createdb pg2
# 2 向pg1中创建表并插入数据
psql pg1
pg=# create table tb1(a int)
pg=# insert into tb1(a) values(1);
# 3 pg2 中创建表并插入数据
psql pg2
pg=# create table tb2(a int)
pg=# insert into tb2(a) values(2);
# 4 备份数据库
pg_dumpall > /usr/local/pgsql/backup/pg_all.dmp
# 5 删除数据库
dropdb pg1
dropdb pg2
# 6 恢复数据库
psql –f /usr/local/pgsql/backup/pg_all.dmp postgres
# 可以指定任何数据库名,如果恢复到一个空的集群中,通常使用 postgres 数据库
# 7 查看数据库 pg1 是否恢复
psql pg1
pg=# select * from tb1;
# 8 查看数据库 pg2 是否恢复
psql pg2
pg=# select * from tb2;

至此,数据已成功恢复!

4.4.2 文件系统级别备份(冷备份:需要停止db)

文件系统级别的备份是冷备份,需要停止数据库。

# 1 停止数据库
pg_ctl –D /usr/local/pgsql/data stop
# 2 备份数据库
tar –jcv –f /usr/local/pgsql/backup/filesystem.tar.bz2 /usr/local/pgsql/data/
# 3 删除 /usr/local/pgsql/data/ 目录
rm –r /usr/local/pgsql/data/
# 4 解压备份文件到原目录
tar –jxv –f /usr/local/pgsql/backup/filesystem.tar.bz2 –C /
# 5 启动数据库
pg_ctl –D /usr/local/pgsql/data start
# 6 查看数据库 pg1 是否恢复
psql pg1
pg=# select * from tb1;
# 7 查看数据库 pg2 是否恢复
psql pg2
pg=# select * from tb2;

至此,数据已成功恢复!

4.4.3 在线热备份(归档)
①备份
  1. 配置归档模式
# 配置归档需要编辑 postgresql.conf 文件,默认为与 /usr/local/pgsql/data/ 目录下
vim /usr/local/pgsql/data/postgesql.conf
archive_mode = on
archive_command = ‘cp %p /usr/local/pgsql/backup/archived_log/%f’

注: %p 要被归档的日志文件的路径, %f 是要被归档的日志文件的文件名

  1. 启动数据库
pg_ctl –D /usr/local/pgsql/data start
  1. 创建数据库 arch
createdb arch
  1. 创建表并插入记录
psql arch
arch=# create table tb(a int);
arch=# insert into tb(a) values(1);
  1. 创建备份
arch=# select pg_start_backup(‘baseline’);
  1. 备份整个 data 目录
tar –jcv –f /usr/local/pgsql/backup/baseline.tar.bz2 /usr/local/pgsql/data/
  1. 停止备份
psql arch
arch=# select pg_stop_backup();
  1. 插入新记录,然后切换日志,重复 3 次
arch=# insert into tb(a) values(2);
arch=# select pg_switch_xlog();
arch=# insert into tb(a) values(3);
arch=# select pg_switch_xlog();
arch=# insert into tb(a) values(4);
arch=# select pg_switch_xlog();
  1. 把 /data/pg_xlog/ 下的 WAL 日志文件复制到预设的归档目录下,保证产生的 WAL 日志都已归档。
②恢复
# 1 停止数据库
pg_ctl –D /usr/local/pgsql/data/ stop
# 2 删除 /data/
rm –r /usr/local/pgsql/data/
# 3 恢复备份
tar –jxv –f /usr/local/pgsql/backup/baseline.tar.bz2 –C /
# 4 清空 /data/pg_xlog/ 目录下所有文件
rm –r /usr/local/pgsql/data/pg_xlog/
# 5 创建 /pg_xlog/ 及其下面的 archive_status 目录
mkdir /usr/local/pgsql/data/pg_xlog/
mkdir /usr/local/pgsql/data/pg_xlog/archive_status
# 6 在 /data/ 目录下创建 recovery.conf
vim /usr/local/pgsql/data/recovery.conf
restore_command = ‘cp /usr/local/pgsql/backup/archived_log/%f “%p”’
# 7 启动数据库
pg_ctl –D /usr/local/pgsql/data/ start

一切正常的话数据库就会自动应用 WAL 日志进行恢复

# 8 查看数据库 arch 是否恢复
psql arch
arch=# select * from tb;

至此,数据已经成功恢复!

参考:https://blog.csdn.net/gbz2000/article/details/114382382

4.5 DDL:Data Definition Language,create、drop、alter

  • DML(Data Manipulation Language,数据操纵语言):insert、update、delete
  • DCL(Data Control Language,数据控制语言):创建、修改、删除用户等
  • DQL(Data Query Language,数据查询语言)
4.5.1 修改字段类型
-- 将表activity_detail 字段update_time 从date 修改成timestamp
alter table activity_detail  alter column update_time  type timestamp using update_time::timestamp;

5 bug

5.1 pq: SSL is not enabled on the server

# 在datasource中设置sslmode=disable
datasource := "user=postgres password=*** host=localhost port=5432 dbname=testgo sslmode=disable"

5.2 控制台乱码

# 连接到数据库
psql -U your_username -d your_database_name

# 查看当前编码
SHOW client_encoding;

打开 PostgreSQL 的配置文件 postgresql.conf。该文件通常位于 PostgreSQL 安装目录下的 data 子目录中。

在文件中找到 client_encoding 参数,并将其值修改为 UTF8

client_encoding = 'UTF8'

保存,并关闭文件,然后重启psql

net stop postgresql
net start postgresql文章来源地址https://www.toymoban.com/news/detail-792061.html

6 字段概念

6.1 时间相关

-- 将表activity_detail 字段update_time 从date 修改成timestamp
alter table activity_detail  alter column update_time  type timestamp using update_time::timestamp;
6.1.1 date:日期,YYYY-MM-DD
6.1.2 time:时间,HH:MI:SS
6.1.3 timestamp:日期时间,YYYY-MM-DD HH:MI:SS
6.1.4 timestamptz:带有时区的时间,YYYY-MM-DD HH:MI:SS TZ
6.1.5 interval:时间间隔,可以是年、月、日、小时、分钟、秒等
6.1.6 时区偏移量:timezonetz,+HH:MI或-HH:MI

到了这里,关于win10安装配置使用PostgreSQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10安装nginx的配置和使用方法(图文)

    查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 window10系统安装nginx服务,提供网页方面的服务。下面为详细图文安装配置教程。 官方下载地址:http://n

    2024年02月14日
    浏览(36)
  • # ⛳ Docker 安装、配置和详细使用教程-Win10专业版

    win10专业版系统首先需要开启硬件虚拟化及Hyper-V功能,才能进行Docker for Windows软件安装。 如何开启硬件虚拟化,由于过于繁琐,大家可自行百度。可在任务栏中查看虚拟化是否开启。 win10系统,打开控制面板-“应用”-“程序和功能”,开启Hyper-V,按照提示重启系统即可 ,

    2024年02月07日
    浏览(65)
  • win10环境使用nvm安装多版本nodejs并配置环境变量

    最近使用node工程,需要多版本,并且进行切换,来回安装卸载不同版本的node比较麻烦,后面自己就简单捯饬了一下nvm来管理node,顺便记录一下自己的使用过程,以便于后续查找。 1.nvm安装,首先在官网下载 https://github.com/coreybutler/nvm-windows/releases 然后安装nvm-setup.exe: 注意:

    2024年01月20日
    浏览(62)
  • 解决win10测试麦克风显示有声音,但是实际使用teams还有其他录音设备时没有声音

    在声音设置和麦克风测试里面都是有输入有声音的状态,但是在Teams通话时没有声音。 其他方法都试过了都没有用,可以试试下面的设置: 1.麦克风属性 2.高级,取消勾选独占

    2024年02月12日
    浏览(105)
  • win10下在Qt中使用VTK(安装VS2017+安装QT5.9.9+编译配置VTK8.2.0)

    作为一个只浅学过C语言和C++的纯小白,在编译VTK(visualization toolkit)并与Qt结合的过程中遇到了很多问题,零零碎碎也看了许多文章教程,但由于版本兼容、过程不完整等问题走了许多弯路,最后东拼西凑勉强完成,故写下这篇文章供大家参考。 本文主要目的是安装vs2017,

    2024年02月11日
    浏览(49)
  • win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)

    安装好后环境测试效果如下,支持命令nvidia-smi,不支持命令nvcc,usr/local目录下没有cuda文件夹。 系统迁移到非C盘 wsl安装的系统默认在c盘,为节省c盘空间进行迁移。 1、输出 wsl -l 查看要迁移的系统名称 2、执行导出命令: wsl --export Ubuntu-20.04 ./Ubuntu-20.04.tar ,以下命令将系统

    2024年02月20日
    浏览(55)
  • Win10安装配置Redis,修改密码

    tporadowski 提供了 支持 Windows平台的 Redis 安装包,目前仍在维护,目前最新版本是 5.0.14,更新速度跟Redis官网也相差好几个大版本。 下载地址:https://github.com/tporadowski/redis/releases 这里使用 tporadowski 维护的 Redis 进行安装演示 下载安装包:Redis-x64-5.0.14.1.msi、Redis-x64-5.0.14.1.zip

    2024年01月23日
    浏览(37)
  • Win10安装Java 配置环境变量

    学习java开发首先需要安装jdk,并设置环境变量。 接下来就来介绍一下如何在 windows 10 系统中配置java环境变量 https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe 1. 双击安装包打开 【JDK 安装对话框】 2. 更改安装目录至D盘 1. 右键点击 【我的电脑 - 属性】,打开 【设置】 面

    2024年02月11日
    浏览(56)
  • win10下Elasticsearch安装配置完整教程

    一、在安装Elasticsearch引擎之前,必须安装ES需要的软件环境,安装Java JDK和配置JAVA_HOME环境变量 二.安装ElasticSearch服务,下载和安装es包 https://www.elastic.co/downloads/past-releases Elasticsearch 8.6.1 | Elastic   安装成功之后,先不急着初始化。(先解决初始化乱码问题,不解决也可使用,

    2024年02月03日
    浏览(36)
  • win10中maven的安装与配置

    maven是什么?点进来的各位都是奔着安装的目的来的,肯定都清楚maven是干什么使的,各种百科上的描述也足够详细,在这里就不赘述了。 直接进入正题,maven如何安装以及如何配置 。 记住一个前提,先安装好jdk,再来配置maven!!! 我自己安装使用的是3.6.3版本,如果你也

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包