介绍
PostgreSQL, Postgres, 以下简称为PG,是一款关系型数据库,本地安装支持两种方式,一键安装和绿色解压安装两种方式
下载、解压
- 安装版:
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- 绿色解压版:
本次使用绿色解压版、windows环境,版本选择次新版本16,最新的小版本号16.4.1
https://get.enterprisedb.com/postgresql/postgresql-16.4-1-windows-x64-binaries.zip
解压到本地目录,如:E:\developer\postgresql-16.4-1\pgsql\
配置
可选,配置环境变量是方便简写,如不配置,后续命令里的该目录需要替换成绝对路径
- 用户环境变量配置:PG_HOME,值为:
E:\developer\postgresql-16.4-1\pgsql
- 配置用户PATH,追加:
%PG_HOME%\bin
- 打开新CMD窗口检查配置是否已配好:
echo %PG_HOME%
,echo %PATH%
- 检查版本号:
postgres --version
,输出与下载解压的版本号一致,则表示安装成功。如果不一致,则表示此机上可能存在其他版本的PG.
初始化
- 定位到PG目录:
cd %PG_HOME%
- 初始化:
initdb.exe -D "%PG_HOME%\data" -E UTF-8 -U postgres -W
- 命令窗口提示输入密码并牢记,例如:Ws202409@
- 等待初始化,大约10秒钟左右后,可见到执行结果。
完成示例执行结果:
D:\Users\aha>initdb.exe -D "%PG_HOME%\data" -E UTF-8 -U postgres -W
属于此数据库系统的文件宿主为用户 "aha".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "Chinese (Simplified)_China.936"进行初始化.
initdb: 无法为本地化语言环境"Chinese (Simplified)_China.936"找到合适的文本搜索配置
缺省的文本搜索配置将会被设置到"simple"
禁止为数据页生成校验和.
输入新的超级用户口令:
再输入一遍:
创建目录 E:/developer/postgresql-16.4-1/pgsql/data ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......windows
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
选择默认时区 ... Asia/Shanghai
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功
initdb: 警告: 为本地连接启用"trust"身份验证
initdb: hint: 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.
成功。您现在可以用下面的命令开启数据库服务器:
pg_ctl -D ^"E^:^\developer^\postgresql^-16^.4^-1^\pgsql^\data^" -l 日志文件 start
启动数据库服务
通过命令启动
pg_ctl -D "%PG_HOME%\data" -l log_file start
输出:
等待服务器进程启动 .... 完成
服务器进程已经启动
表示启动成功,注:默认端口为5432
检查端口状态:
执行命令:netstat -ano|findstr 5432
如出现:
TCP 127.0.0.1:5432 0.0.0.0:0 LISTENING 1892
则表示端口状态正常
停服务
有几种停止PG数据库服务器的命令
- 安全关闭模式:最安全的关闭方式,它向postgres主服务进程发送一个SIGTERM信号。服务器将不允许新的客户端连接,同时等待已有会话正常完成工作。当所有会话都主动终止连接之后,关闭服务。
pg_ctl -D "%PG_HOME%\data" stop -m smart
- 快速关闭模式:服务进程发送SIGTERM信号,回滚进行中的事务并且强制断开所有客户端的连接,然后关闭数据库
pg_ctl -D "%PG_HOME%\data" stop -m fast
- 立即关闭模式:向所有的子进程发送SIGQUIT信号,如果5秒内子进程没有终止,继续发送立即终止的SIGKILL信号。当所有子进程退出后,主服务进程立即终止,不会执行常规的数据库关闭流程。
pg_ctl -D "%PG_HOME%\data" stop -m immediate
关闭成功的控制台输出示例:
等待服务器进程关闭 .... 完成
服务器进程已经关闭
标签:...,PostgreSQL,Windows,笔记,PG,HOME%,postgresql,服务器,data
From: https://www.cnblogs.com/jiayuan2006/p/18440624