首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL语言环境语言

PostgreSQL语言环境语言
EN

Stack Overflow用户
提问于 2013-06-08 09:19:57
回答 1查看 2.3K关注 0票数 2

我运行的是安装了PostgreSQL 9.2的Debian3.2。我的一个同事用日语初始化了数据库集群。所以现在,使用createdb创建的每个数据库,无论用户是谁,现在都是以日语作为其语言实例化的。

我找不到一种方法将语言重置为英语,而不必在新的集群上再次运行initdb。我真的不想这样做,因为有很多数据无法下降。

据我所知,当带有这些标志的命令被称为initdb -D /place/for/data --locale=ja_JP时,数据库集群被设置为日语。但是,当我创建相同的集群,然后使用createdb创建一个新数据库时,错误消息的语言是英语。在我的同事集群中,此场景中的错误消息将生成日语错误消息。

有人能帮我理解一下PostgreSQL 9.2中的语言环境是如何工作的吗?怎样才能把集群改回英语呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-08 19:35:13

在没有完全转储和重新加载的情况下,您无法将集群完全更改回英语。

一般而言,邮局主管将以初始化数据库集群的语言和编码发出消息。单个数据库上的会话将以创建数据库时使用的语言和编码发出消息,这可能与群集默认设置不同。

这可能会导致日志采用混合语言和混合文本编码,这真的很难看。尽管对邮件列表进行了反复的讨论,但我们始终没有就如何解决这个问题达成一致--它比看起来复杂得多。

由于每个会话都在其自己的区域设置中进行记录,因此您可以使用每个CREATE DATABASE manual page的适当LC_CTYPEENCODINGLC_COLLATE等设置进行CREATE DATABASE ...。您可能必须指定TEMPLATE template0才能成功。这将导致新创建的数据库使用所需的语言和编码;然后,您可以将每个旧数据库转储到相应的新数据库中,重命名旧数据库,然后将新数据库重命名为旧数据库的位置。当你觉得一切顺利的时候,旧的就可以放弃了。

邮局局长级别的邮件仍将使用日语。我不认为没有re-initdb就没有办法解决这个问题。更糟糕的是,如果它不是jp_JP.UTF-8而是一种不同的编码,那么您的日志文件中可能有混合的编码,这可能会使日志文件处理器等非常混乱。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16995057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档