Windows下免安装postgresql,并注册成服务

最近做的一些产品,需要内置postgre数据库,肯定是希望到时候一键启动,直接注册成服务,不需要用户再去安装,所以倒腾了半天,网上找了很多资料,但是感觉都不是很全面,现在记录一下。

  • 下载postgre包
    下载地址:https://www.postgresql.org/download/
    如下图进行下载


  • postgre基本准备
    1.解压文件。
    2.在主目录下创建data目录作为数据存储目录
    3.切换到bin目录,进行dos窗口
    4.初始化pgsql:
initdb.exe -D ../data

5.启动pgsql,启动完以后不要关闭窗口

pg_ctl.exe start -D ..\data

6.现在这个时候还是不能登录的,重新打开一个窗口,进入bin目录,连接pgsql

psql postgres

其实这个就是使用默认的postgres用户来登录,登录成功以后就进入了postgre的操作界面。但是你使用一些连接工具,并不能连接上,我查了一些资料,说是没有创建postgres这个角色,需要创建一下,再打开一个dos窗口,输入:

createuser -s -r postgres

然后接下来你就可以连接了,localhost,5432,数据库是postgres,用户名是postgres,密码随便输入。

7.我们现在创建一个数据库,在上一步中(psql postgres)的操作界面中直接输入:

create database testdatabase;

8.现在数据库是没有密码的,现在给加个密码:

alter user postgres with password 'newpassword';

但是现在还没有生效,就算退出去重新进入,也不需要输入密码,因为采用的是信任模式。
9. 在data目录下,打开pg_hba.conf文件,修改如下位置:

10. 然后使用步骤5重新启动一下,然后使用连接工具的时候必须输入密码才行。这边也看到了好多网友进行密码重置的一些方案,把md5改回trust,然后修改密码,然后再改回md5就可以了。

  • postgre服务注册

1.还是在bin目录下进行dos窗口:

pg_ctl.exe register -N "pgsql" -D D:psql\data

千万注意这个-D目录,这个地方必须要写绝对路径,我之前写的相对路径,结果服务注册成功以后,一直起不来,最后通过网友写的查看windows的日志才发现了问题所在。

2.然后就可以启动服务了:

sc start pgsql;或者:net start pgsql;

假如启动失败了,我后续写一篇博文介绍一下如何查看windows日志,能够直接看到启动服务所报的错。
友情链接:https://blog.csdn.net/ywg_1994/article/details/82430943

  • 内置数据库以及启动脚本的书写

    开篇就提到了,我们是要内置数据库,所以初始化数据库,数据库的创建,表的创建,密码的设置,都完成了,现在要做的就是在产品启动的时候去注册pgsql的服务,然后启动就行。
    产品目录比如是:bin\startup.bat,pgsql的安装目录postgre和bin是同级的,我在这个启动脚本里面要去写注册服务的脚本。

    脚本里面这样写:

cd ..
set pgsql_home=%cd%\postgre
cd %pgsql_home%\bin
pg_ctl.exe register -N "pgsql" -D %pgsql_home%\data
net start pgsql

这样写的话,每次都会注册服务并且去启动,会打出比如:服务已经注册,服务已经启动之类的话,虽然没有什么影响,但是做一些判断的话,应该只需要注册一次并启动一次就行。现在还没有做,等以后有需求的话再说。

  • postgre设置ip白名单

需要修改data目录下的两个配置文件:
pg_hba.conf和postgresql.conf

pg_hba.conf

查找IPv4 local connections
修改默认的

host all all 127.0.0.1/32 trust

重点修改一下ADDRESS属性。

host all all 192.168.1.1/32 trust #IP全匹配
或
host all all 192.168.1.1/24 trust #IP匹配前三段
或
host all all 0.0.0.0/0 trust #全部允许
postgresql.conf

查找 Connection Settings
修改默认的

listen_addresses = 'localhost'

上述配置,默认是注释掉的。

listen_addresses = '*'

然后重启一下pgsql,即可。

Windows下在命令行安装postgresql,并注册成window服务;产品内置postgre相关推荐

  1. windows下 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”的解决办法

    Mask R-CNN学习(三):windows下 cl: 命令行 error D8021 :无效的数值参数"/Wno-cpp"的解决办法 2018年07月20日 11:11:06 ...

  2. [js]windows下通过命令行运行javascript脚本,支持命令行参数

    windows下通过命令行运行javascript脚本,支持命令行参数 js作为最受欢迎的语言,以其方便.通用.功能强大的特点,可以给大家在实际使用的过程中带来很大的便利. 下面是本文从实际应用的角度 ...

  3. windows下的命令行工具babun

    Babun 可以直接在winodows下面编译linux代码 但是本人只成功编译过个个go的linux 和 C的linux,C++的编译不出来东西 安装很简单,下下来,直接双击批处理 install ...

  4. windows下php命令行模式错误信息

    windows下php命令行模式遇错误一闪而过自动关闭窗口,无法看清报错内容.此时,可手动开启一个窗口,然后运行相关代码即可. 转载于:https://www.cnblogs.com/shanhesh ...

  5. windows下cmd命令行显示UTF8字符设置(CHCP命令)

    点我进入原文 windows下cmd命令行显示UTF8字符设置(CHCP命令) 在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能 ...

  6. Windows下用命令行查找文件for命令的运用

    <Windows下for命令查找文件> 可以在cmd下敲入如下命令了解for用法: for   /? 如要查找 "d:\下的jpg文件,命令如下: for /r d:\ %i i ...

  7. ubuntu下用命令行安装Qt

    虽然网络上很多人使用 Redhat 或者Fedora 作为上位机操作系统,但是我觉得使用Ubuntu最为方便,因为需要的软件包大部分都可以通过 apt-get 方式来安装,而不必从源代码开始自己编译. ...

  8. Windows下用命令行导出导入MySQL数据库

    方法1:添加"系统环境变量".我的电脑>属性>高级>环境变量,在"系统变量"栏目下找到 path 双击编辑.先添加:(分号),再添加MySQL ...

  9. mac php命令行模式,phpstorm分别在Mac和Windows下启动命令行,并启用ssh

    Mac:在terminal下运行 sudo -i 输入密码  就可以用ssh IP:端口  命令行登录了 DAssist是一个命令行开发辅助,可直接在系统命令行工具中使用,Linux和MacOS等自带 ...

最新文章

  1. android 动画 返回,Android TranslateAnimation在动画后重置
  2. C/C++宏定义中#与##区别 .
  3. 指令打印与驱动打印随笔
  4. IDE:5个最喜欢的NetBeans功能
  5. java非检查性异常有哪些_Java异常处理-检查性异常、非检查性异常、Error
  6. zznu 1996 : 正三角形和圆的爱情
  7. 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇...
  8. python类的多态_8.python之面相对象part.6(python类中的多态与多态性)
  9. 学生宿舍管理系统——UML 2nd
  10. 基于富士通编译器Softune的堆栈、变量、常量理解
  11. java爬虫新闻网站_java爬虫 之 搜狐新闻爬虫(一)
  12. hping3安装及使用
  13. 疯狂语音红包 5.2.0 微信红包引流吸粉
  14. github电脑壁纸_超有用电脑小工具(二)附福利
  15. 前端与移动开发----微信小程序----小程序(一)
  16. sql server 代理权限问题
  17. 孝感市小学生机器人编程比赛_小学生获机器人大赛一等奖 编程是语文老师教的...
  18. Ceph 问题记录:MDSs report oversized cache / clients failing to respond to cache pressure
  19. java基于ssm的论坛贴子网站ssm论坛项目发帖子网站论坛系统论坛源码
  20. 苹果xr怎么截屏_手机资讯:iPhone XR更新系统后无信号怎么办iPhone XR无信号解决办法...

热门文章

  1. 基于 Debian 的 GNU/Linux的Parrot 3.11 已发布
  2. 设备常用网管配置举例
  3. 网络传输前三层——物理层、数据链路层、网络层
  4. Swift - lazy 修饰符和lazy 方法
  5. VScode受难记 - 0
  6. No appenders could be found for logger
  7. muduo网络库源码复现笔记(十七):什么都不做的EventLoop
  8. kali linux改root密码
  9. RK3399平台开发系列讲解(其他篇)1.11、CPU如何定频
  10. “200+语种,11种文档格式”,百度文档翻译API,真的很好用