暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Windows中绿色安装PostgreSQL 13.3数据库

DB宝 2022-08-09
1724

目录

    1、安装概述
    2、下载Windows的二进制格式
    3、解压安装包
    4、配置环境变量
    5、初始化数据库
    6、启动数据库
    7、注册系统服务,需管理员权限方可
    8、配置远程登录
    9、登陆数据库

    1、安装概述

    PG安装方法很多,和MySQL类似,给用户提供很大的选择空间。如:RPM包安装(在线、离线)、源码编译安装、系统自带、二进制、NDB安装等。

    https://www.postgresql.org/

    https://yum.postgresql.org/rpmchart.php

    https://yum.postgresql.org/11/redhat/rhel-6-x86_64/repoview/postgresqldbserver11.group.html

    https://www.postgresql.org/ftp/source/

    打开 PostgreSQL 官网 https://www.postgresql.org/,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。

    各个安装包:https://www.postgresql.org/ftp/source/

    Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:

    点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。

    2、下载Windows的二进制格式

    二进制格式下载地址:https://www.enterprisedb.com/download-postgresql-binaries

    3、解压安装包

    下载完成后,把改压缩包解压到D盘的相关目录下,麦老师这里解压到D:\db\PostgreSQL\13.3目录下。

    4、配置环境变量

    配置环境变量,编辑批处理文件 配置环境变量.vbs(永久生效),然后执行该vbs文件:

     1on error resume next
    2set sysenv=CreateObject("WScript.Shell").Environment("system"'系统环境变量的数组对象
    3Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
    4'
    添加变量
    5sysenv("PGHOME")="D:\db\PostgreSQL\13.3"
    6sysenv("PGHOST")="localhost"
    7sysenv("Path")=sysenv("PGHOME")+"\bin;"+sysenv("Path")
    8sysenv("PGLIB")=sysenv("PGHOME")+"\lib"
    9sysenv("PGDATA")=sysenv("PGHOME")+"\data"
    10
    11wscript.echo "PostgreSQL环境变量安装成功!不需要重新启动计算机!"

    或在cmd中执行如下代码:

    1SETX "PGHOME"  "D:\db\PostgreSQL\13.3"
    2SETX "PGHOST"  "localhost"
    3SETX "PGLIB"   "%PGHOME%\lib"
    4SETX "PGDATA"  "%PGHOME%\data"
    5SETX "PATH"   "%%PGHOME%%\bin;%path%"

    5、初始化数据库

     1C:\Users\lhrxxt>D:\db\PostgreSQL\13.3\bin\initdb.exe -D "D:\db\PostgreSQL\13.3\data" -E UTF-8 --locale=chs -U postgres -W
    2The files belonging to this database system will be owned by user "lhrxxt".
    3This user must also own the server process.
    4
    5The database cluster will be initialized with locale "Chinese_China.936".
    6initdb: could not find suitable text search configuration for locale "Chinese_China.936"
    7The default text search configuration will be set to "simple".
    8
    9Data page checksums are disabled.
    10
    11Enter new superuser password:
    12Enter it again:
    13
    14creating directory D:/db/PostgreSQL/13.3/data ... ok
    15creating subdirectories ... ok
    16selecting dynamic shared memory implementation ... windows
    17selecting default max_connections ... 100
    18selecting default shared_buffers ... 128MB
    19selecting default time zone ... Asia/Hong_Kong
    20creating configuration files ... ok
    21running bootstrap script ... ok
    22performing post-bootstrap initialization ... ok
    23syncing data to disk ... ok
    24
    25initdb: warning: enabling "trust" authentication for local connections
    26You can change this by editing pg_hba.conf or using the option -A, or
    27--auth-local and --auth-host, the next time you run initdb.
    28
    29Success. You can now start the database server using:
    30
    31    ^"D^:^\db^\PostgreSQL^\13^.3^\bin^\pg^_ctl^" -D ^"D^:^\db^\PostgreSQL^\13^.3^\data^" -l logfile start

    6、启动数据库

    1pg_ctl -D D:\db\PostgreSQL\13.3\data -l logfile start

    7、注册系统服务,需管理员权限方可

    1pg_ctl register -N PostgreSQL -D D:\db\PostgreSQL\13.3\data

    查看已经注册的服务:win+R在弹出的运行框中,输入:services.msc,如下:

    net start PostgreSQL 查看是否启动。

    1net start PostgreSQL 

    命令行下输入tasklist | grep postgres
    查看进程:

    image-20210421122245509

    netstat –an 可以查看所有和本地计算机建立连接的IP。

    卸载服务:同样需要管理员权限,两种方式

    1) pg_ctl unregister –N PostgreSQL

    2) sc delete PostgreSQL

    8、配置远程登录

    postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下:

    ① postgresql.conf,位于%PGDATA%目录下,修改listen_addresses参数:

    1listen_addresses='*'

    ② pg_hba.conf,位于%PGDATA%目录下

    可以清空该文件内容,然后配置如下内容:

    1# TYPE  DATABASE    USER    ADDRESS       METHOD
    2local     all       all                    trust
    3host      all       all    ::1/128         trust
    4host      all       all   127.0.0.1/32     trust
    5host      all       all    0.0.0.0/0        md5
    6host   replication  all    0.0.0.0/0        md5

    之后,重启PG数据库即可。

    9、登陆数据库

    sql 是 PostgreSQL 中的一个命令行交互式客户端工具,它允许你交互地键入 SQL 命令,然后把它们发送给 PostgreSQL 服务器,再显示 SQL 或命令的结果。

    输入的内容允许来自一个文件,此外它还提供了一些元命令和多种类似 shell 的特性来实现书写脚本,以及对大量任务的自动化工作。

    特性:方便快捷、没有图形化工具使用上的一些限制

    1-- 本地登陆
    2psql -U postgres
    3
    4-- 远程登陆
    5psql -U postgres -h 192.168.66.35 -d postgres -p5432
    6
    7-- 从Postgresql 9.2开始,还可以使用URI格式进行远程连接:psql postgresql://myuser:mypasswd@myhost:5432/mydb
    8psql postgresql://postgres:lhr@192.168.66.35:15432/postgres

    其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中的数据库,默认也是postgres,-U指定用户,默认是当前用户,-p 指定端口号,默认是"5432",其它更多的参数选项可以执行:./bin/psql --help 查看。

     1C:\Users\lhrxxt>psql -U postgres -h 192.168.66.236 -d postgres -p5432
    2Password for user postgres:
    3psql (13.3)
    4Type "help" for help.
    5
    6postgres=# \l
    7                                        List of databases
    8   Name    |  Owner   | Encoding |      Collate      |       Ctype       |   Access privileges
    9-----------+----------+----------+-------------------+-------------------+-----------------------
    10 postgres  | postgres | UTF8     | Chinese_China.936 | Chinese_China.936 |
    11 template0 | postgres | UTF8     | Chinese_China.936 | Chinese_China.936 | =c/postgres          +
    12           |          |          |                   |                   | postgres=CTc/postgres
    13 template1 | postgres | UTF8     | Chinese_China.936 | Chinese_China.936 | =c/postgres          +
    14           |          |          |                   |                   | postgres=CTc/postgres
    15(3 rows)
    16
    17
    18postgres=# CREATE DATABASE lhrdb WITH OWNER=postgres ENCODING='UTF-8';
    19CREATE DATABASE
    20postgres=# \c lhrdb
    21You are now connected to database "
    lhrdb" as user "postgres".
    22lhrdb=#
    23lhrdb=# create table student (
    24lhrdb(#   id integer not null,
    25lhrdb(#   name character(32),
    26lhrdb(#   number char(5),
    27lhrdb(#   constraint student_pkey primary key (id)
    28lhrdb(# );
    29CREATE TABLE
    30lhrdb=#
    31lhrdb=# \d student
    32                 Table "
    public.student"
    33 Column |     Type      | Collation | Nullable | Default
    34--------+---------------+-----------+----------+---------
    35 id     | integer       |           | not null |
    36 name   | character(32) |           |          |
    37 number | character(5)  |           |          |
    38Indexes:
    39    "
    student_pkey" PRIMARY KEY, btree (id)
    40
    41
    42lhrdb=#
    43lhrdb=# INSERT INTO student (id, name, number) VALUES (1, '张三', '1023');
    44INSERT 0 1
    45lhrdb=# SELECT * FROM student WHERE id=1;
    46 id |                name                | number
    47----+------------------------------------+--------
    48  1 | 张三                               | 1023
    49(1 row)
    50


    安装配置完成,若有不懂,可以私聊麦老师。

          

    本文结束。



    • 微信公众号:DB宝,作者:小麦苗,作者微信:db_bao

    • 作者博客地址:https//www.xmmup.com

    • 作者QQ:646634621,QQ群:230161599、618766405
    • 提供Oracle OCP、OCM、高可用(rac+dg+ogg)、MySQL DBA和PostgreSQL DBA培训
    • 版权所有,欢迎分享本文,转载请保留出处

    • 若有侵权请联系小麦苗删除

      ★DB宝分享的IT资料:https://mp.weixin.qq.com/s/Iwsy-zkzwgs8nYkcMz29ag
      ★DB宝笔试面试详解:https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

      长按下图识别二维码,关注小麦苗的微信公众号:DB宝,学习最实用的数据库技术。


      文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论