database – 在Linux上为PostgreSQL配置语言环境

database – 在Linux上为PostgreSQL配置语言环境,第1张

概述我在设置和运行特定数据库时遇到问题.我正在尝试恢复我从其他人那里获得的postgreSQL转储.我试过几种方法无济于事. >直接来自pg_restore pg_restore -C -d postgres –exit-on-error maggie_prod_20111221.dump.sql >首先创建数据库和表空间 createdb -T template0 maggieprod -E LAT 我在设置和运行特定数据库时遇到问题.我正在尝试恢复我从其他人那里获得的postgresql转储.我试过几种方法无济于事.

>直接来自pg_restore

pg_restore -C -d postgres –exit-on-error maggIE_prod_20111221.dump.sql
>首先创建数据库和表空间

createdb -T template0 maggIEprod -E latin1

sql:CREATE tableSPACE magdat OWNER maggIE LOCATION’/ somewhere / magdat’;

pg_restore -v -d template1 maggIE_prod_20110121.dump.sql

使用第一种方法,我得到以下内容:

pg_restore:[archiver(db)]处理TOC时出错:

pg_restore:[archiver(db)]来自TOC条目2308的错误; 1262 16386 DATABASE maggIEprod postgres

pg_restore:[archiver(db)]无法执行查询:错误:编码latin1与区域设置en_CA.utf8不匹配

DETAIL:选择的LC_CTYPE设置需要编码UTF8.
命令是:CREATE DATABASE maggIEprod with TEMPLATE = template0 ENCoding =’latin1’tableSPACE = magdat;

使用第二个,当我尝试创建数据库时,我得到:

createdb:数据库创建失败:错误:编码latin1与区域设置en_CA.utf8不匹配

DETAIL:选择的LC_CTYPE设置需要编码UTF8.

所以似乎我无法创建latin1编码数据库?这是为什么?我是语言环境和编码的新手,并不太了解它们.我只知道转储是由latin1数据库完成的.

语言环境的输出是:

LANG = en_CA.utf8
LC_CTYPE = “en_CA.utf8”
LC_NUMERIC = “en_CA.utf8”
LC_TIME = “en_CA.utf8”
LC_ColLATE = “en_CA.utf8”
LC_MONETARY = “en_CA.utf8”
LC_MESSAGES = “en_CA.utf8”
LC_PAPER = “en_CA.utf8”
LC_name = “en_CA.utf8”
LC_ADDRESS = “en_CA.utf8”
LC_TELEPHONE = “en_CA.utf8”
LC_MEASUREMENT = “en_CA.utf8”
LC_IDENTIFICATION = “en_CA.utf8”
LC_ALL =

而locale -a的输出是:

C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

我不会在第二个命令中看到latin1,不是吗?如果是这样,我将如何添加它?假设我需要更改计算机上的语言环境,这是正确的吗?如果是这样,有没有办法只为postgresql做到这一点?此外,当我尝试打开转储时,我看到很多垃圾字符,我假设这是因为编码,我将如何正确地看待它?

谢谢你的帮助.

解决方法 您需要使用与编码匹配的区域设置创建数据库,例如,
createdb -T template0 maggIEprod -E latin1 --locale=en_CA

由于您没有安装所有语言环境,我猜您使用的是Debian或Ubuntu.在这种情况下,请调用dpkg-reconfigure locales或安装locales-all软件包.

或者,使用UTF8编码创建数据库.只要您的所有客户端正确设置客户端编码,它就不会有所作为.

总结

以上是内存溢出为你收集整理的database – 在Linux上为PostgreSQL配置语言环境全部内容,希望文章能够帮你解决database – 在Linux上为PostgreSQL配置语言环境所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存