PostgreSQL 安装部署 [Windows]

PostgreSQL简介

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。 百度百科

准备资料

  1. Windows Server:Windows Server 2016
  2. PostgreSQL:postgresql-12.1-1-windows-x64-binaries.zip (https://www.postgresql.org/)

安装PostgreSQL

  1. 将下载后的压缩包解压,如:D:\ProductionEnv\pgsql,并将PostgreSQL安装目录添加到环境变量:D:\ProductionEnv\pgsql\bin
  2. 进入解压后的目录,创建名为“data”的文件夹,用于实例创建,存储库文件和配置。
  3. 进入pgsql/bin下,命令行执行:initdb -D ../data -U postgres,在data目录下初始化一个实例,使用的用户名为“postgres”,这里并没有设置密码。
  4. 初始化后,data目录结构为:
    • i. logfile.log是启动时指定的日志文件,用于存储日志,默认不存在。
    • ii. postgresql.conf为当前实例的配置文件,如端口(默认为:5432),最大连接数等参数。
    • iii. pg_hba.conf 为当前实例的访问规则。
  5. 启动/停止PostgreSQL,使用指令启动停止,但需要注意使用管理员权限运行。
    • a. 启动:pg_ctl -D D:\ProductionEnv\pgsql\data -l D:\ProductionEnv\pgsql\data\logfile.log start
    • b. 停止:pg_ctl -D D:\ProductionEnv\pgsql\data stop

创建bat脚本执行启动

创建如下脚本,可获取管理员权限,并执行启动指令。

    @echo off
    %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
    cd /d "%~dp0"

    set "POSTGRESSQL_HOME=D:\ProductionEnv\pgsql"
    set PATH=%PATH%;"%POSTGRESSQL_HOME%\bin"

    start %POSTGRESSQL_HOME%\bin\pg_ctl -D D:\ProductionEnv\pgsql\data -l D:\ProductionEnv\pgsql\data\logfile.log start

修改PostgreSQL密码

  1. 上述安装之后,指定了账号postgres,并未指定密码,所以需要使用指令修改密码。
  2. 登录postgresql:psql -U postgres
  3. 修改密码:ALTER USER postgres WITH PASSWORD 'new password';
  4. 提示“ALTER ROLE”表示修改成功。

配置远程访问

  1. 编辑配置文件postgresql.conf,参数listen_addresses表示监听地址,默认为localhost,表示指监听本地访问,需修改为listen_addresses= '*'
  2. 编辑配置文件pg_hba.conf:,添加对其他地址的信任:host all all 0.0.0.0/0 trust

禁止无密码登录

  1. 默认登录不需要使用密码登录,需要编辑配置文件pg_hba.conf禁止无密码登录。
  2. 针对不同的访问条目,修改METHOD值,由trust修改为password

基本使用

  1. 使用psql指令登录客户端,登录后命令行模式为“postgres=#”,该模式下可以执行sql。
  2. 登录客户端(不指定IP地址、端口):psql -U postgres
  3. 登录客户端(指定IP地址、端口):psql -h localhost -p 5432 -U postgres -W postgres,其中:-h表示ip地址,-p表示端口,-U表示用户,-W表示数据库名
  4. 执行查询,如查询所有数据库:select * from pg_database;
  5. 退出访问:\q
欣赏此文?求鼓励,求支持!您的支持就是支持我更新的最大动力!