windows10 安装postgresql二进制包
一、postgresql二进制包下载
根据自己系统下载对应的二进制包,下载链接:https://www.enterprisedb.com/download-postgresql-binaries
二、安装步骤
1. 解压postgresql二进制包
将文件解压到你喜欢的位置,我的位置为:D:\database。解压后会有一个pgsql文件。
2. 初始化数据库
D:\database\pgsql\bin>initdb.exe -D "D:/database/pgsql/data" -E UTF-8 -W
初始化过程中需要输入超级用户(当前系统用户)的密码,根据提示设置即可。
注意:
- 初始化过若使用-U指定了数据库用户的话,则设置的是指定的数据库用户的密码,若不指定则自动将当前系统用户作为数据库用户。
- data目录要不存在或者为空,否则初始化不成功。
3. 启动数据库服务
D:\database\pgsql\bin>pg_ctl -D "D:/database/pgsql/data" start
4. 使用psql测试连接数据库
D:\database\pgsql\bin>psql -d postgres
psql是postgresql自带的数据库连接工具,可使用-d指定数据库,-U指定用户,-h指定ip地址,-p指定端口。在不指定-U的情况下,默认使用当前系统用户名;不指定-h,默认使用本地连接;不指定-p,默认使用端口5432。
\du 查看数据库用户信息
\q 退出psql连接
5. 关闭数据库服务
D:\database\pgsql\bin>pg_ctl -D "D:/database/pgsql/data" stop
6. 注册windows服务
D:\database\pgsql\bin>pg_ctl register -N PostgreSQL -D "D:/database/pgsql/data"
在服务中查看刚刚注册的PostgreSQL服务:
注意:这个需要用管理权限执行,否则服务注册不成功,会报“pg_ctl:无法打开服务管理器”的错误。
为什么注册windows服务:
- 可以设置在开机时自动启动postgresql服务,就不需要我们每次自己手动启动。
- 使用pg_ctl start 启动postgresql服务后,cmd窗口不能关闭,若cmd窗口关闭够,启动的postgresql服务会自动关闭。
另外,注册了windows服务后,我们可以使用net start 服务名,和net stop 服务名来启停pg服务。
7. 环境变量设置
主要设置的环境变量有两个PGPATH和PGDATA,PGPATH要添加到系统环境变量中。其余的环境变量按需设置。有了PGPATH就不用使用绝对路径调用pg的命令了,有了PGDATA在操作时就不需要用-D指定数据库路径,会自动使用设置的PGDATA路径作为数据库路径。
PGHOME:D:\database\pgsql
PGPATH:%PGHOME%\bin
PGDATA:%PGHOME%\data
三、允许远程连接
现在我们可以在本地连接pg服务,但远程是连接不上的。要想远程能连接上我们的本地的pg服务,需要修改data目录下的两个配置文件:postgresql.conf和pg_hba.conf。
* 在postgresql.conf中监听所有tcp连接。取消listen_addresses="*"
前的注释#,或者直接在文件末尾添加listen_addresses="*"
* 在pg_hba.conf中增加认证规则:
host all all 0.0.0.0/0 md5
另外,数据库初始化的时候把认证方式都设置为了trust,为了安全起见,建议都使用md5的方式。
可在pg_hba.conf中设置数据库服务访问的黑白名单。