Windows 管理PostgreSQL服务

原创
2017/03/16 09:50
阅读数 2.7K

准备:
PostgreSQL拟装在d:\postgresql
数据库以后拟存放在d:\postgresql\data

 

适用情景

PostgreSQL有Windows安装版,我们这里的适用场景是,从其他机器上拷贝了一份PostgreSQL,拷贝解压之后的目录结构如下:

 

设置环境变量

创建PGHOME=D:/postgresql

Path变量加入:%PGHOME%/bin

 

初始化并创建数据库(一次即可)

initdb.exe -D d:\postgresql\data -E UTF-8 --locale=chs -U postgres -W

-D :指定数据库簇的存储目录E:\pgsql\data

-E :指定DB的超级用户的用户名postgres

--locale:关于区域设置(chinese-simplified-china)

-U :默认编码格式chs

-W :为超级用户指定密码的提示

执行结果如下

 

注册为windows系统服务

如果不注册为系统服务,每次需要运行如下命令启动

pg_ctl -D d:\postgresql -l logfile start

启动后,在数据库安装的主目录下生成一个logfile文件:D:\postgresql\logfile

注:如果注册系统服务,请使用管理员权限方式运行cmd.exe

pg_ctl register -N "PostgreSQL" -D "D:\postgresql\data"

 

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

右键点击PostgreSQL属性,你就会发现可执行路径如下

D:/postgresql/bin/pg_ctl.exe runservice -N "PostgreSQL" -D "D:\postgresql\data" -w

命令行输入如下命令启动数据库:

net start PostgreSQL 

查看是否启动

命令行下输入:tasklist

命令行下输入 netstat –ano -p tcp | findstr "5432"

TCP    0.0.0.0:5432           0.0.0.0:0              LISTENING       32680

可以查看所有和本地计算机建立连接的IP 卸载服务:

同样需要管理员权限,两种方式

1) pg_ctl unregister –N PostgreSQL (win8)

2) sc delete PostgreSQL (PostgreSQL)

 

密码重置

如果忘记了刚才设置的密码,需要在d:\postgresql\data目录找到pg_hba.conf,修改成如下

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

执行下面命令,重新加载配置

pg_ctl reload

然后通过命令或者图形化工具,登录,这里我使用命令

psql -h localhost -p 5432 -U postgres

然后修改密码

alter user postgres with password 'mynewpasword;

修改完之后,把pg_hba.conf中的trust改回md5,然后执行

pg_ctl reload

 

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
0 收藏
0
分享
返回顶部
顶部