win7下 postgresql产生的问题?

aCfeng 发布于 2012/03/20 14:59
阅读 2K+
收藏 0

win7  通过bat文件运行安装postgresql,但是在bat安装的过程中出现:

                          pg_ctl:无法打开服务管理器

                          服务名无效

    createdbcould not connect to database postgres:无法联接到服务器:connection refused(oxooo0274D/10061)

      服务器是否在主机“???”上运行并且准备接受在端口

         3379 上的 TCP/IP 联接?

  createusercould not connect to database postgres:无法联接到服务器:connection refused(oxooo0274D/10061)

      服务器是否在主机“???”上运行并且准备接受在端口

         3379 上的 TCP/IP 联接?

    psql:无法联接到服务器:connection refused(oxooo0274D/10061)

      服务器是否在主机“???”上运行并且准备接受在端口

         3379 上的 TCP/IP 联接?

 

[img=D:\posgresql服务器连接问题.png][/img]

 

源代码如下:

    @echo off

REM query the service

sc query |find /i "pgsqldbclassic" >nul 2>nul

REM is the service exits goto pgsqlExist

if not errorlevel 1 (goto pgsqlExist) else goto pgsqlNotExist

 

:pgsqlNotExist

set PGHOME=pgsql

set currentPath=%~dp0

set PGPATH=%currentPath%%PGHOME%

 

cd %~d0

 

cd %PGPATH%\bin

 

echo ::::%PGPATH%\bin

 

initdb -U postgres -D %PGPATH%\data --encoding=utf8 --locale=C

echo ....%PGPATH%\data

pause

rem 等待

echo wait 1 seconds:

rem 将生产的postgresql.conf替换为端口号为3379postgresql.conf

cd..

cd..

replace /r %currentPath%ini\setup\postgresql.conf %currentPath%\pgsql\data

cd %PGPATH%\bin

 

echo ))))%PGPATH%\bin

pause

pg_ctl register -D %PGPATH%\data -Npgsqldbclassic

 

net start pgsqldbclassic

 

cd %PGPATH%\bin

createdb -E UTF8 -U postgres -p 3379 hspower

 

 

createuser -p3379 -U postgres -s hsuper

rem createuser -U postgres -p3379 -P hscrm

rem 使用外部sql语句创建hscrm用户

set PGPASSWORD=

psql -p3379 -Uhsuper -S -c "create user hscrm with password 'xtpass67'" hspower

 

echo 换文件

psql -p3379 -Uhsuper -dhspower < %currentPath%ini\setup\hspowerplain.backup

加载中
0
YuanyuanL
YuanyuanL

你好!首先分析一下你的问题:

在创建windows服务这一步没成功

pg_ctl register -D %PGPATH%\data -Npgsqldbclassic 

报错:

  pg_ctl:无法打开服务管理器

                          服务名无效

所以下一步启动服务:

net start pgsqldbclassic

这个也没成功,你的数据库的服务没有启动起来,所以最后你用psql连接不上:

psql -p3379 -Uhsuper -dhspower < %currentPath%ini\setup\hspowerplain.backup

报错:

createdbcould not connect to database postgres:无法联接到服务器:connection refused(oxooo0274D/10061)

      服务器是否在主机“???”上运行并且准备接受在端口

      3379 上的 TCP/IP 联接?


解决方法:

你可以重新创建postgresql的windows服务,然后用net start启动这个服务;

也可以直接使用pg_ctl start -D ../data目录 来启动你数据库的服务。

总之,首先要启动数据库服务,然后再去用psql连接数据库。


希望对你有帮助!


返回顶部
顶部