Error en creación de base de datos

From: César Villanueva <dandelion(at)cantv(dot)net>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Cc: "Oscar Chicharro" <oscardaniel(at)grupobbva(dot)net>
Subject: Error en creación de base de datos
Date: 2004-05-05 12:15:59
Message-ID: 200405050815.59797.dandelion@cantv.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola

La solución a tu problema es muy sencilla

createdb -D /var/lib/pgsql/data/data test

(observa la repetición de data/data,
NO ES un error bajo las circunstancias
que has señalado, pero sigue leyendo
hasta el final antes de correr a ejecutar
lo anterior)

Observa que no es lo mismo

echo $PGDATA2 [1]

que

echo PGDATA2 [2]

[1] Produce en tu caso /PGDATA/data,
aunque debería producir:

/var/lib/pgsql/data/data

( por cierto, ¿existe este directorio
en tu sistema de archivos?
¿Puedes hacer

cd /var/lib/pgsql/data/data

?
)

[2] Produce la cadena PGDATA2,
que es sólo eso, una cadena de texto,
no una variable de ambiente,
no un directorio, sólo una cadena de texto
bastante inútil al efecto de tu Postgresql.

Por favor, sigue leyendo entre líneas....

El Miércoles, 5 de Mayo de 2004 04:39, Oscar Chicharro escribió:
> La variable existe:
> echo $PGDATA2
> /PGDATA/data

¿Tienes un directorio en tu árbol raíz llamado PGDATA?
(Estoy seguro que no) Entonces $PGDATA2 apunta a
un directorio que no existe, compruébalo haciendo (como root)

cd $PGDATA2 (con el símbolo de $, por favor)

>
> y está incluida en el fichero .bash_profile del usuario postgres:
> PGDATA=/var/lib/pgsql/data
> [ -f $PGDATA/../initdb.i18n] && source $PGDATA/../initdb.i18n
> PGDATA2=/PGDATA/data

El error de tu definición está aquí. Debe ser
PGDATA2=/$PGDATA/data
^
^^^^
Pequeño detalle ($)

Dicho esto, ¿quieres que PGDATA2 sea:

/var/lib/pgsql/data/data

con un subdirectorio "data",
debajo de otro subdirectorio "data",
debajo de "/var/lib/pgsql/"

No le veo mucho sentido a
menos que el último "data" esté en
una partición/disco aparte.

> export PGDATA PGDATA2
>
> (la segunda linea no sé para que es)

Es código de shell,
> [ -f $PGDATA/../initdb.i18n]

El corchete es "test" , si existe el archivo

$PGDATA/../initdb.i18n

ENTONCES (&&) ejecuta (source)

$PGDATA/../initdb.i18n

como un script de shell (si existe revisa su contenido
y verás muchas variable de "locale" exportadas).

Debes estudiar un poco el uso de shell (bash) y
su programación elemental para que no te sorprendan
estos errores.

NOTA: Las interpretaciones de "&&" como
ENTONCES (THEN) y de "source" como (ejecuta)
no son rigurosamente exactas desde el punto de
vista de su sintaxis, pero sí desde el ángulo
práctico. Las verdaderas interpretaciones
quedan como ejercicios al lector.

Saludos desde Venezuela

--
César Villanueva

In response to

Responses

  • at 2004-05-05 12:34:21 from Pehuen Vera

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pehuen Vera 2004-05-05 12:34:21
Previous Message Gorka 2004-05-05 10:54:20 RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] ¿Existe Posgres para Windows?