8.4, Encoding, LC_ ...

From: Andrés P(dot)P(dot) <solopostgres(at)gmail(dot)com>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: 8.4, Encoding, LC_ ...
Date: 2010-09-23 02:30:21
Message-ID: AANLkTikU1eUFtUZwCH_Tq5NoXJttEqStHc9NLVG48HG5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola

Tengo 3 servidores RedH5.. (S1, S2 y S3 para mayor comprensión..) .

- S1 y S2 están operativos, con postgres 8.4 y en cada uno una BD con
encoding=LATIN1....
- Ahora me encuentro en la fase de instalar y crear una BD de iguales
características en el servidor 3 (S3), sin embargo me he encontrado con el
error:

-------------------------------------------------------------------------------------------------------------------------------
*[postgres_S3~]$ psql
psql (8.4.1)
Type "help" for help.*
*postgres=#
postgres=# \c template1 postgres
psql (8.4.1)
You are now connected to database "template1".
template1=# create database comdb with encoding 'LATIN1';
ERROR: la codificacion LATIN1 no coincide con la configuracion regional
en_US.UTF-8
DETAIL: La configuracion regional LC_CTYPE requiere la codificacion UTF8.*

*Configuración local:*
**
*[postgres_S3~]$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access
privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
:
postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
:
postgres=CTc/postgres
(3 rows)
*
**
*[postgres_S3~]$
[postgres_S3~]$ more /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
*
*[postgres_S3~]$
[postgres_S3~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=*
-------------------------------------------------------------------------------------------------------------------------------

Googleando la solución pasa por modificar la configuración local.... de
hecho, en otras aplicaciones así lo hice........ sin embargo, revicé S1 y S2
para ver la configuración local de éstos para compararlos con S3 y me
encontré con lo siguiente:

-------------------------------------------------------------------------------------------------------------------------------
*[postgres_S1~]$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-----------+-------+-----------------------
comdb | postgres | LATIN1 | es_ES | es_ES | =Tc/postgres
: postgres=CTc/postgres
postgres | postgres | LATIN1 | es_ES | es_ES |
template0 | postgres | LATIN1 | es_ES | es_ES | =c/postgres
: postgres=CTc/postgres
template1 | postgres | LATIN1 | es_ES | es_ES | =c/postgres
: postgres=CTc/postgres
(4 rows)*
**
*[postgres_S1~]$
[postgres_S1~]$ more /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
*
*[postgres_S1~]$
[postgres_S1~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
*
-------------------------------------------------------------------------------------------------------------------------------

S1 y S2 son iguales y ambos tiene una configuración local no coincidente o
compatible con LATIN1.. pero en ambos Sí se pudo crear (en algún momento)
una BD con encoding LATIN1..... Lamentablemente no recuerdo cuál fue el
"truco" que en esa oportunidad usé para lograr eso.

Como lo decía anteriormente yo he podido crear BD LATIN1 en 8.4 cambiando la
configuración local y reiniciando... pero conociendo al cliente estoy
seguro que no van a querer modificar la configuración local sin que le
expliquemos el porqué hay que hacer dicho cambio si los otros dos servidores
no fue necesario hacerlo aparentemente.

He probado creando el cluster (initdb ) con la opción --locale=C... o
--locale=es_ES.iso88591 ... --locale=es_ES... incluso con LATIN1..... he
cambiando la variable ambiental LANG al momento de la creación del cluster..
el postgresql.conf es igual en los tres....... pero nada me ha
resultado... y por todo lo que les mencioné anteriormente alguna vez
"algo" hice y sí me resultó... (lo sé, lo sé... créame, siempre anoto las
cosas.. pero al parecer en esto no lo hice..).

En fin, agradecería que me ayudaran a encontrar la solución a esto SIN tener
que cambiar la configuración local y reiniciar...

Saludos
Andrés

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Francisco Charo 2010-09-23 09:05:53 libreias para instalar postgres 9 sobre ubuntu
Previous Message Sergio Gabriel Rodriguez 2010-09-23 01:20:13 Re: error en vacuum analyze