说起这个问题,我不得不说一句“我屮艸芔茻”,实在是太坑爹了,今天在windows下使用postgresql,安装完毕后,进入postgresql的bin目录;
输入pg_ctl start启动了服务器进程,
但发现使用语句createdb -U postgres postgres时,却总是提示输入口令,但当我输入用户postgres的口令时,系统一直提醒我口令出错,无奈之下查了一个下午,原来问题出在这样一段话上:
PostgreSQL 数据库口令与任何操作系统用户口令无关。各个数据库用户的口令是存储在 pg_authid 系统表里面。口令可以用 SQL 语言命令 CREATE USER 和 ALTER USER 等管理(比如 CREATE USER foo WITH PASSWORD 'secret'; 。缺省时,如果没有明确设置口令,那么存储的口令是空并且该用户的口令认证总会失败。
《PostgreSQL 8.2.3 中文文档,20.2 认证方法》
也就是说,我的用户postgresql还尚未初始化自己的密码,于是密码为空,但是空的密码是不能被认证的,所以永远认证不了了,解决办法是,进入PSQL Shell键入alter user postgres with 'password';
就OK了,新的口令被设置好了~