重装 Windows 后,重新设定 PostgreSQL

我用的是postgresql 8.3.1 , 以前是用安装包一步步安装的,重装xp操作系统后,我想启用postgresql,于是用了以下命令:
添加用户postgres,然后将用户postgres从本地用户组里删除

net user postgres postgres /add /expires:never /passwordchg:no
net localgroup users postgres /delete

初使化数据库,然后将postgres注册为服务,服务名为wamppg

initdb -D D:\usr\wamp\bin\postgresql\postgresql8.3.1\data -E UTF8 –locale=C
pg_ctl register -D D:\usr\wamp\bin\postgresql\postgresql8.3.1\data -N wamppg

成功启动了服务器,才想到我的当前用户是administrator,安装\初使化数据库都用的它,现在postgres这个用户确实是在操作系统里添加了,但是PG数据库里没有.于是无法用postgres用户进入,提示

role “postgres” does not exist

看来要操作一下,[用pgadmin连接总是出错,后来发现是大小写的问题.区分大小写哦!]

psql -d postgres

打开了postgres数据库,这是初使化时默认的数据库.

\l 列出所有的数据库.\du 查看当前的所有用户,

可以看到只有一个用户[角色]Administrator.几个数据库的所有者都是它.

加一个角色,密码和角色名称一样是postgres,记得将它指定为超级用户,还要记得让它有登录的权限。以后它就是老大了,Administrator将要删除.然后将几个数据库的所有者改为postgres.退出用postgres登录无误后删除Administrator

CREATE ROLE postgres LOGIN USER INHERIT CREATEDB CREATEROLE PASSWORD ‘postgres’;
ALTER DATABASE postgres OWNER TO postgres;
ALTER DATABASE template0 OWNER TO postgres;
ALTER DATABASE template1 OWNER TO postgres;


后来发现无法删除Administrator,因为一些依赖关系无法解决,于是换个方法

ALTER ROLE Administrator RENAME TO postgres;

好了,现在一切就像重装系统前一样了.

本文共有 0 条评论重装 Windows 后,重新设定 PostgreSQL


  1. 没有评论

请留下您的评论: