有的文章中有提到postgresql使用http://jianlee.ylinux.org/Computer/%E6%9C%8D%E5%8A%A1%E5%99%A8/postgresql%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A5%E9%97%A8.html
下面的方式可以创建用户
create user huangming with password '123'
CREATE USER xxxx1 WITH PASSWORD 'xxxx';或者是使用下面的方式可以修改密码
ALTER USER username with password 'abc123';
--------------------------------------------------
但是我使用上面的方式都不行,命令行提醒,
F:\pgsql\bin>create user huangming with password '123'
'create' 不是内部或外部命令,也不是可运行的程序
或批处理文件。只有使用
F:\pgsql\bin>createuser xx
Shall the new role be a superuser? (y/n) y的方式才能创建用户,但是我不能使用这样的方式,因为创建用户是使用批处理的方式创建的,比处理能够执行第二句createuser xx
但是却不能模仿键盘输入'y',现在请问各位该怎么办?

解决方案 »

  1.   

    createuser 是一个程序
    create user huangming with password '123' 是一个sql语句语句需要进入 psql 客户端程序, 或者其他查询分析器后, 才执行的.
    不能在命令行上直接输入 sql 语句来执行.
      

  2.   

    能否使用批处理语句模拟
    F:\pgsql\bin>createuser xx
    Shall the new role be a superuser? (y/n) y这个输入过程呢?
      

  3.   

    那个命令应该有参数指定所要创建的用户是否具有管理员权限
    你在命令行上给出设定后, 她便不再提问你了-s
    -S 这两个的命令行选项你看下createuser --help 显示帮助信息.
      

  4.   


    你需要先进入psqlF:\pgsql\bin>psql db1
      

  5.   

    createuser.exe在BIN目录下,可直接运行psql -UZW1 -W ZW<R:\TEMP\SHORT.TXTSHORT.TXT:
    create user huangming with password '123'
      

  6.   

    OR
    psql -Uusername -W -c "create user huangmingA with password '123'" DBNAME
      

  7.   

    谢谢各位的回复,虽然各位的回答让我更加了解了postgresql。但是我的主要问题并没有解决我想问的是
    只要一点bat-批处理文件
    就能一次性在postgresql中创建一个用户,而不需要用户在作出什么输入
    5楼6楼的回答都需要手动的输入user的密码
      

  8.   

    BAT中直接执行这一句即可。
    [code=BatchFile]psql  -c CREATE USER sampled PASSWORD '1234';" [/code]
      

  9.   

    在BAT中:
    set PGPASSWORD=你的密码
    psql -Uusername -W -c "create user huangmingA with password '123'" DBNAME
      

  10.   

    按照你的方式写的bat,下面是执行的结果所角色"sampled"不存在?F:\>cd F:\pgsql\binF:\pgsql\bin>psql -c CREATE mydb sampled PASSWORD '1234';"
    psql:警告:忽略多余的命令列参数 "PASSWORD"
    psql:警告:忽略多余的命令列参数 "'1234'; "
    psql: FATAL:  role "sampled" does not existF:\pgsql\bin>pause
    请按任意键继续. . .
      

  11.   

    Hi,wwwwb这是按照你提供的方案写的,但是还是要求输入“用户 ming 密码:”,的需要手工输入,无法用批处理一次性完成F:\>cd F:\pgsql\binF:\pgsql\bin>set PGPASSWORD=mingF:\pgsql\bin>psql -Uming -W -c "create user huangmingB with password '123'" mydb
    用户 ming 密码:
      

  12.   

    9楼的代码已经通过
    OR
    set PGPASSWORD=你的密码
    psql -Uusername -w -c "create user huangmingA with password '123'" DBNAME
      

  13.   

    修改为小写的wset PGPASSWORD=你的密码
    psql -Uusername -w -c "create user huangmingA with password '123'" DBNAME
    已经通过
      

  14.   

    首先谢谢你的回复,下面是所存在的问题
    F:\>cd F:\pgsql\binF:\pgsql\bin>set PGPASSWORD=mingF:\pgsql\bin>psql -Uming -w -c "create user huangmingC with password '123'" mydb
    psql: illegal option -- w
    尝试 "psql --help" 以得到更多资讯。F:\pgsql\bin>pause
    请按任意键继续. . .-w (小写w这个参数不存在)请问wwwwb pgsql的版本号,我的是psql 8.3.10
      

  15.   

    D:\postgresql9\bin>psql --version
    psql (PostgreSQL) 9.0.0我用9.0,
    PSQL --help
    贴结果or
    set PGPASSWORD=你的密码
    psql -Uusername -c "create user huangmingA with password '123'" DBNAME
      

  16.   

    可能这是一个版本的问题;
    另外
    8.3.x的备份文件.backup可以在9.x中恢复吗
      

  17.   

    我解决了8.3.x的一键添加用户名和密码的解决方案了psql -p5822 -Umyuser -S -c "create user xper with password '123'" databasename主要是-S参数
    谢谢楼上几位的回答,特别是wwwwb,对我寻找到解决方案有很大的启发,好了散分