现在这个网站下载 PostgreSQL https://www.enterprisedb.com/download-postgresql-binaries ,版本选择最新版的就好,这里我用的 Version 13
。
下载压缩包后,解压缩,可以看到下面这张图的文件目录:
我们所需要的启动文件就在bin
的文件夹里面。
根据官方文档我们可以看到,要使用数据库,要先初始化存放数据库数据的文件夹也就是用 initdb
命令,我们先用 initdb.exe --help
命令来看看是否有命令需要我们配置的。在bin文件夹下面运行 initdb.exe --help
可以看到下面的输出。
G:\pgsql\bin>initdb.exe --help
initdb 初始化一个 PostgreSQL 数据库簇.
使用方法:
initdb [选项]... [DATADIR]
选项:
-A, --auth=METHOD 本地连接的默认认证方法
--auth-host=METHOD 本地的TCP/IP连接的默认认证方法
--auth-local=METHOD 本地socket连接的默认认证方法
-D, --pgdata=DATADIR 当前数据库簇的位置
-E, --encoding=ENCODING 为新数据库设置默认编码
-g, --allow-group-access 允许组对数据目录进行读/执行
--locale=LOCALE 为新数据库设置默认语言环境
--lc-collate, --lc-ctype, --lc-messages=LOCALE
--lc-monetary, --lc-numeric, --lc-time=LOCALE
为新的数据库簇在各自的目录中分别
设定缺省语言环境(默认使用环境变量)
--no-locale 等同于 --locale=C
--pwfile=FILE 对于新的超级用户从文件读取口令
-T, --text-search-config=CFG
缺省的文本搜索配置
-U, --username=NAME 数据库超级用户名
-W, --pwprompt 对于新的超级用户提示输入口令
-X, --waldir=WALDIR 预写日志目录的位置
--wal-segsize=SIZE WAL段的大小(兆字节)
非普通使用选项:
-d, --debug 产生大量的除错信息
-k, --data-checksums 使用数据页产生效验和
-L DIRECTORY 输入文件的位置
-n, --no-clean 出错后不清理
-N, --no-sync 不用等待变化安全写入磁盘
-s, --show 显示内部设置
-S, --sync-only 只同步数据目录
其它选项:
-V, --version 输出版本信息, 然后退出
-?, --help 显示此帮助, 然后退出
如果没有指定数据目录, 将使用环境变量 PGDATA
我们所需要的就是参数有 --encoding=ENCODING
、--username=NAME
、--pwprompt
、--waldir=WALDIR
、--pgdata=DATADIR
,以上这些命令在初始化数据库可以帮助我们进行更好的设置。
G:\pgsql\bin>initdb.exe --pgdata=G:\pgsql\data --encoding=UTF-8 --username=postgres --pwprompt --waldir=G:\pgsql\wal
属于此数据库系统的文件宿主为用户 "Administrator".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "Chinese (Simplified)_China.936"进行初始化.
initdb: could not find suitable text search configuration for locale "Chinese (Simplified)_China.936"
缺省的文本搜索配置将会被设置到"simple"
禁止为数据页生成校验和.
输入新的超级用户口令:
再输入一遍:
创建目录 G:/pgsql/data ... 成功
创建目录 G:/pgsql/wal ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......windows
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
selecting default time zone ... Asia/Hong_Kong
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功
initdb: 警告: 为本地连接启用"trust"身份验证
你可以通过编辑 pg_hba.conf 更改或你下次
执行 initdb 时使用 -A或者--auth-local和--auth-host选项.
成功。您现在可以用下面的命令开启数据库服务器:
pg_ctl -D ^"G^:^\pgsql^\data^" -l 日志文件 start
注册服务
G:\pgsql\bin>pg_ctl.exe register -N "pgsql" -D "G:\pgsql\data"
启动服务
G:\pgsql\bin>pg_ctl.exe start
注意,启动后的终端不能关闭,如果关了,程序也就停止了。