Windows上PostgreSQL安装配置教程
这篇文章主要为大家详细介绍了Windows上PostgreSQL安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
PostgreSQL的扩展PostGIS是最著名的开源GIS数据库。
安装PostgreSQL是第一步。
1.下载PostgreSQL的二进制安装文件。
PostgreSQL官网–>Download–>Windows 64位,如图所示:
(1)官网:
https://www.postgresql.org/
(2)Download:
https://www.postgresql.org/download/
https://www.postgresql.org/download/windows/
(3)Windows 64位(根据自己系统版本选择)
https://www.enterprisedb.com/download-postgresql-binaries
2.解压压缩包,配置环境变量
(1)首先在pgsql(E:\postgresql-11.12-2-windows-x64-binaries\pgsql)文件夹下建立一个名为data的文件夹(这是数据库的数据存储文件夹)
(2)然后在pgsql文件夹下新建一个名为env.vbs的文件
文件内容如下:
1 on error resume next 2 set sysenv=CreateObject("WScript.Shell").Environment("system") 'system environment array 3 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path 'add variable 4 sysenv("PGHOME")="E:\postgresql-11.12-2-windows-x64-binaries\pgsql" 5 sysenv("PGHOST")="localhost" 6 sysenv("Path")=sysenv("PGHOME")+"\bin;"+sysenv("Path") 7 sysenv("PGLIB")=sysenv("PGHOME")+"\lib" 8 sysenv("PGDATA")=sysenv("PGHOME")+"\data" 9 10 wscript.echo "PostgreSQL Success"
(3)最后运行此脚本
3.初始化数据库
Microsoft Windows [版本 10.0.18363.1621]
(c) 2019 Microsoft Corporation。保留所有权利。 C:\WINDOWS\system32>cd E:\postgresql-11.12-2-windows-x64-binaries\pgsql C:\WINDOWS\system32>e: E:\postgresql-11.12-2-windows-x64-binaries\pgsql>cd bin E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>initdb -D E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data 属于此数据库系统的文件宿主为用户 "admin". 此用户也必须为服务器进程的宿主. 数据库簇将使用本地化语言 "Chinese (Simplified)_China.936"进行初始化. 本地化隐含的编码 "GBK" 不允许作为服务器端的编码. 默认的数据库编码将采用 "UTF8" 作为代替. initdb: 无法为本地化语言环境"Chinese (Simplified)_China.936"找到合适的文本搜索配置 缺省的文本搜索配置将会被设置到"simple" 禁止为数据页生成校验和. 修复已存在目录 E:/postgresql-11.12-2-windows-x64-binaries/pgsql/data 的权限 ... 成功 正在创建子目录 ... 成功 选择默认最大联接数 (max_connections) ... 100 选择默认共享缓冲区大小 (shared_buffers) ... 128MB selecting default timezone ... Asia/Hong_Kong 选择动态共享内存实现 ......windows 创建配置文件 ... 成功 正在运行自举脚本 ...成功 正在执行自举后初始化 ...成功 同步数据到磁盘...成功 警告:为本地连接启动了 "trust" 认证. 你可以通过编辑 pg_hba.conf 更改或你下次 执行 initdb 时使用 -A或者--auth-local和--auth-host选项. 成功。您现在可以用下面的命令开启数据库服务器: pg_ctl -D ^"E^:^\postgresql^-11^.12^-2^-windows^-x64^-binaries^\pgsql^\data^" -l logfile start E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>pg_ctl unregister -N postgresql pg_ctl: 服务 "postgresql" 没有注册 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>pg_ctl register -D "E:\postgresql-11.12-2-windows-x64-binaries\pgsql/data" E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>pg_ctl start -w -D "E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data" 等待服务器进程启动 ....2021-07-27 14:19:15.925 HKT [8232] 日志: 正在监听IPv6地址"::1",端口 5432 2021-07-27 14:19:15.925 HKT [8232] 日志: 正在监听IPv4地址"127.0.0.1",端口 5432 2021-07-27 14:19:16.052 HKT [1204] 日志: 数据库上次关闭时间为 2021-07-27 14:17:30 HKT 2021-07-27 14:19:16.081 HKT [8232] 日志: 数据库系统准备接受连接 完成 服务器进程已经启动 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>net user postgres postgres /add 命令成功完成。 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>net user alan_ps 123456 /add 命令成功完成。 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>net user \\DESKTOP-DK30POB 的用户帐户 ------------------------------------------------------------------------------- admin Administrator alan_ps DefaultAccount Guest postgres WDAGUtilityAccount WmsControl 命令成功完成。 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>psql -U iFunk -d alan_ps 2021-07-27 14:21:03.633 HKT [8036] 致命错误: 角色 "iFunk" 不存在 psql: 致命错误: 角色 "iFunk" 不存在 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>psql -U iFunk -d postgress 2021-07-27 14:21:36.733 HKT [1372] 致命错误: 角色 "iFunk" 不存在 psql: 致命错误: 角色 "iFunk" 不存在 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>
以管理员身份打开命令提示符,定位到bin目录下,输入以下命令:
产生data资料
代码如下:
initdb -D E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data
删除一个服务:
增加一个服务:
pg_ctl register -D "E:\postgresql-11.12-2-windows-x64-binaries/pgsql/data"
启动服务
pg_ctl start -w -D "c:/postgresql/11/pgsql/data"
创建用户postgres,密码同样是postgres:
net user postgres postgres /add
可以修改配置文件的配置,比如端口,默认为 5432,当创建多个数据库实例时,需要配置不同的端口才能启动。
4、启动 vs 停止,注册 Windows 服务
start: pg_ctl -D D:/Programs/pgsql/data -l D:/Programs/pgsql/data/mydb.log start stop: pg_ctl -D D:/Programs/pgsql/data stop
5、 将其注册成 windows 服务,随机启动:
1、首先,在 data 目录下创建一个 start.bat
@echo off pg_ctl -D D:/Programs/pgsql/data -l D:/Programs/pgsql/data/mydb.log start
上面的目录信息,必须跟创建的数据库实例的目录一致!
2、通过 sc 注册服务
sc create pgsqlservice binPath=E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data\start.bat start=auto
需要注意两点:
必须使用管理员权限打开 CMD 窗口,不然没有权限;
命令中 = 后面必须有空格,这个格外需要注意;
6、创建PostgreSQL用户和它要找的那个相符
createuser --superuser postgres
查看系统用户
net user
7、创建角色
postgres=# create role alan_psql;
CREATE ROLE
postgres=#
8:登录数据库
E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>psql -h localhost -p 5432 -U admin -W postgres
6.使用PgAdmin,建立数据库连接
在E:\postgresql-11.12-2-windows-x64-binaries\pgsql\pgAdmin 4\bin下,有pgAdmin4.exe,双击打开。
我用的是超级用户postgres建立的连接