zoukankan      html  css  js  c++  java
  • Windows安装PostgreSQL数据库 无法初始化数据库问题

    背景

    由于项目的需要,使用PostgreSQL数据库,因此在Windows上安装PostgreSQL数据库。但是在安装后,无法访问本地数据库,这个时候查看/data目录,没有任何文件。而且安装过程中,弹出提示框

    Problem running post-install step.Installation may not complete correctly the database cluster initialisation failed.
    意思是:安装过程中,初始化数据库集群失败

    系统环境

    • 操作系统:Windows 10 Pro
    • PostgreSQL版本:10.4-1
    • 账号:非超级管理员账号

    原因

    在Windows 10中,如果用的是Microsoft账号,则不是超级管理员,这个时候无法创建用户,导致通过安装包进行安装时,无法创建相应的DB用户。而且在账号中无法看到postgres这个用户,因此可猜测出,权限不足时,无法创建相应用户的账号,而无相应账号时,无法初始化DB。

    解决方案

    查看用户

    net  user
    

    创建Postgres用户

    net user postgres postgres /add
    

    在数据库根目录建立data目录

    D:DevPostgreSQL10>md data
    

    移除超级管理员对data目录的权限

    D:DevPostgreSQL10>cacls data /e /t /r administrator
    处理目录:D:DevPostgreSQL10data
    

    将data目录的权限赋给postgres用户

    D:DevPostgreSQL10>cacls data /e /t /r postgres:C
    处理目录:D:DevPostgreSQL10data
    

    初始化数据库

    D:DevPostgreSQL10in>initdb.exe -D ../data -E UTF-8 --locale=chs -U postgres -W
    

    初始化后,需要输入新的用户密码,用于登录数据库。

    启动数据库

    D:DevPostgreSQL10in>pg_ctl.exe -D D:DevPostgreSQL10data -l logfile start
    

    注册PostgresSQL服务

    D:DevPostgreSQL10in>pg_ctl.exe register -N PostgreSQL -D D:DevPostgreSQL10data
    

    常用命令

    启动PostgresSQL服务

    net start PostgreSQL
    

    停止PostgresSQL服务

    net stop PostgreSQL
    

    删除PostgresSQL服务

    D:DevPostgreSQL10in>pg_ctl.exe unregister -N PostgreSQL
    
  • 相关阅读:
    linux使用secureCRT连接(没有rsa的时候)
    linux删除某个php程序进程的组合命令
    Redis介绍以及安装(Linux)
    PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone
    linux下生成rsa密钥的方法
    mysql 的 infobright 数据库的 mediumblob 显示不了数据
    PHP中的Libevent学习
    PHP函数getopt详解
    php_sapi_name详解
    PHP使用mysqldump备份数据库(以及还原)
  • 原文地址:https://www.cnblogs.com/jianxuanbing/p/9160896.html
Copyright © 2011-2022 走看看