前言
ZIP免安装版下载地址:社区 DL 页面 (enterprisedb.com)
选择所需的版本下载即可。
安装
将下载的zip安装包(我这里下载的是postgresql-15.5-1-windows-x64-binaries.zip)解压至D盘根路径下,解压后路径:D:/pgsql
初始化数据库
打开一个cmd窗口(普通cmd窗口,非管理员模式)
切换到d:/pgsql目录下,执行初始化语句
d:
cd pgsql
bin\initdb -D data -U postgres -A password -E utf8 --locale=chs -W
初始化过程中会提示设置超级用户(postgres)的密码。
初始化完成后,在D:/pgsql目录下会创建data文件夹,该文件夹用于存放数据,文件夹名称可以根据自己需要在初始化命令中修改,命令说明:
-D data 指定初始化的数据库目录(此处为当前目录的data文件夹)
-U postgres 数据库超级用户名(此处为postgres,如果不设置,会用当前windows用户名为账号)
-A password 数据库使用密码授权
-E utf8 数据库编码格式
--locale=chs 数据库簇使用的中文语言
-W 命令行执行后 输入密码
启动数据库
初始化完成后即可根据提示使用命令启动pgsql
bin\pg_ctl -D data -l pglog.txt start
命令说明:
-D data 指启动时使用哪个数据库目录
-l pglog.txt 指定启动时数据库日志的保存路径(直接命名会在当前命令下创建对应文件,此处创建日志文件为pglog.txt)
同理,可使用命令关闭数据库(关闭时无需指定日志文件路径)
bin\pg_ctl -D data stop
连接数据库
重新打开数据库,在pgsql文件夹下找到pgadmin 4工具(D:\pgsql\pgAdmin 4\runtime\pgAdmin4.exe)连接数据库
在“Server上右键 ——> 注册 ——> 服务器”来添加一个服务器,配置信息如下:
General信息:
名称:自定义一个连接名称(我这里取名localhost)
连接信息:
主机名称/地址:127.0.0.1(目前只能使用localhost或127.0.0.1连接,无法通过网络IP访问)
维护数据库:postgres
用户:postgres
密码:超级管理员postgres的密码(前面初始化数据库时设置的)
至此数据库可通过本地连接成功!
配置
使数据库支持远程访问
先关闭数据库,然后修改两个文件配置:
修改Data目录下pg_hba.conf文件(D:\pgsql\data\pg_hba.conf):
将host all的地址修改为0.0.0.0/0,表示不限制客户端地址
修改Data目录下postgresql.conf文件(D:\pgsql\data\postgresql.conf):
增加listen_addresses = '*'配置信息,表示监听服务器所有有效IP
修改完成后重新启动数据库,使用pgAdmin 4客户端连接,此时已可以访问。
此时数据库启动的命令窗是不能关闭的,关闭的话数据库也会同步关闭(若想使数据库一直开启,可将数据库启动注册成系统服务)
将pgsql注册成系统服务
打开一个cmd窗口(管理员模式cmd窗口)
切换到d:/pgsql目录下,执行注册服务语句
bin\pg_ctl.exe register -N "pgsql" -D "D:\pgsql\data"
注册成功后可在Windows服务中找到名为“pgsql”的服务
系统服务操作常用命令:
启动pgsql服务:net start pgsql
关闭pgsql服务:net stop pgsql
启动数据库服务后即可正常使用数据库,无需再通过命令控制台管理数据库。
至此,免安装版安装完成,希望对您有所帮助!
常用命令
启动数据库:D:\pgsql>bin\pg_ctl -D data -l pglog.txt start
关闭数据库:D:\pgsql>bin\pg_ctl -D data stop
常用语句
更新指定字段为自增序列
1)先创建自定义序列
create SEQUENCE seq_dayReport_id
start with 1
increment by 1
no MINVALUE
no MAXVALUE
cache 1;
上面序列表示从1开始,自增步长为1,没有最大上限和最小上线,数据库始终缓存1个序列
2)更新指定字段为序列值
update "dayReport"
set id = nextval('seq_dayReport_id')
上面语句表示修改dayReport表的id字段,设置该字段为seq_dayReport_id序列的值,nextval函数可获取下一个序列
3)设置表字段为自增序列
alter table "dayReport" alter COLUMN id set DEFAULT nextval('seq_dayReport_id');
后面再添加数据时,id字段将支持自增