【问题标题】:Role "username" not found: PostgreSQL Windows找不到角色“用户名”:PostgreSQL Windows
【发布时间】:2016-11-02 10:31:36
【问题描述】:

我在 *nix 系统的许多其他解决方案中发现了问题here,但我似乎无法访问psql

只是抛出一个致命错误,告诉我角色用户名不存在,而我刚刚创建了角色并且可以明确地看到该角色在列表中

sqlite 的工作进展非常顺利,现在我需要将所有数据从 sqlite3 迁移到 PostgreSQL,而我在这里被困了好几个小时......! 我该怎么办?

【问题讨论】:

  • Windows 上的 psql 版本 9.6.1 10 以防万一
  • 可以区分大小写吗? postgresql 中的角色名称“zeke”与“Zeke”不同 - 因为您在没有引用名称的情况下给出了命令,所以它都是小写的......stackoverflow.com/questions/21796446/…
  • 确实如此!这么傻的事……!
  • 有没有办法让postgres默认使用用户名而不是用户名

标签: windows postgresql


【解决方案1】:

解决方案 1: 使用 双引号 保留大小写:psql -U postgres -c "CREATE ROLE \"Zeke\""

Windows 中,用户名通常以Username 给出,但psql 命令拒绝保留大小写!这导致了错误......

解决方案 2: psql -U zeke

我仍然想知道是否有任何解决方案可以将 Windows 中的用户名作为 小写 字符! 添加一个 ENV 变量 PGUSER 有助于在每个 psql cmd 之后摆脱 -U zeke

【讨论】:

  • PGUSER Environment Variablecreate role "Zeke" ... 也可以看看User Name Maps
  • 您在我的评论中错过了角色名称周围的双引号。
  • 是的!它有效:psql -U postgres -c "CREATE ROLE \"Zeke\""
猜你喜欢
  • 1970-01-01
  • 2015-04-01
  • 2012-08-08
  • 2018-07-17
  • 2014-03-30
  • 2017-09-02
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多