我是PostgreSQL新手,我被告知要用以下命令创建一个数据库:

createdb -U $USER --locale=en_US.utf-8 -E utf-8 -O $USER mangodb -T template0

但我得到了错误“createdb:命令行参数太多(第一个是template0)”。这个命令怎么了?

最佳答案

根据documentation数据库名称(和可能的描述)排在最后。因此-T template0必须出现在mangodb数据库名称之前:

createdb -U $USER --locale=en_US.utf-8 -E utf-8 -T template0 mangodb

仅当-T template0具有template1以外的编码时,才需要选项utf-8。否则,您可能应该省略该选项,以便使用template1这比template0更有用,因为它加载了更多扩展和其他特定于站点的数据。
还要注意,-O $USER是多余的,因为-U $USER:默认情况下,连接的用户是新数据库的所有者。

10-05 23:07