本例安装postgresql-10.4-1-windows-x64 

postgresql中文社区下载地址:http://www.postgres.cn/download/

postgresql官网下载地址:https://www.postgresql.org/download/

我使用的版本:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows

postgresql 10 安装时会默认安装pgadmin,所以不需要单独安装pgadmin

postgresql安装完之后,以安装目录E:\Program Files\PostgreSQL\10为例

1、需要先设置环境变量,包括三项:data存放路径,lib以及bin目录

        E:\Program Files\PostgreSQL\10\data;(data的安装目录是可选的,例子是放在安装目录的data文件夹)

        E:\Program Files\PostgreSQL\10\lib;

        E:\Program Files\PostgreSQL\10\bin;



2、初始化数据簇,使用initdb命令。

        先进入data上一级目录(E:\Program Files\PostgreSQL\10)执行命令 initdb -U xx -W -D data

        ps: xx 是超级用户名,设置属于你自己的用户名,如不知道initdb命令可使用 initdb --help查看。
        cdb6f6b5433e5aef4002b841c2c66df4fc691a13

        tips:如果直接使用initdb -U xx -W -D E:\Program Files\PostgreSQL\10\data进行初始化会提示错误“initdb:命令行参数太多”

        执行完之后会提示:

       d09e38d3c9cb9923354faf358ae37f54e66d1edc
        此时data目录下会出现很多文件夹和文件:

        c1021fbad41635cf506f52146617d4155bad625e

       

3、不要急着启动,修改data目录下postgresql.conf配置,将前面的#去掉即可

        listen_addresses = 'localhost'        # what IP address(es) to listen on;

        port = 5432                # (change requires restart)

        superuser_reserved_connections = 3    # (change requires restart)

        如需打开其他配置,可以根据自己的情况进行更改

        data目录下还有一个名为pg_hba.conf的文件,pg10默认配置好的,使用默认即可,主要是添加许可权限。

        # IPv4 local connections:

        host    all             all             127.0.0.1/32            trust

        该配置的意思是信任host地址为127.0.0.1/32 的所有用户所有数据库访问,pgadmin中的主机名称和地址就只能是127.0.0.1而不能是localhost,如需使用localhost在下面添加host    all             all             localhost            trust,重启服务



4、启动服务 pg_ctl -D data -l logfile start

        如果已经启动,没关系使用pg_ctl -D data -l logfile stop,然后在启动



5、使用服务进行启动, pg_ctl register -N PostgreSQL -D data

        执行后服务中会出现服务名为PostgreSQL服务,如果已经启动服务 pg_ctl -D data -l logfile stop,然后点击服务启动,设置为自动,开机就会启动服务。如果遇到错误,请在当前目录下查找日志文件logfile,本例的日志文件所在目录E:\Program Files\PostgreSQL\10



6、使用pgadmin创建servers时,维护数据库必须是postgres,不是你创建的database,使用sql shell登录也是一样的。因为默认数据库是postgres。如果不填postgres会出现各种稀奇古怪的错误。比如:'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte

        3bfeeaf9fe8e3c7cd1e87aa552ae5d91952182cd
开启php拓展
在php.ini中,将pdo_pgsql前的分号去掉,重启即可
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐