Saludos. No soy experto en postgres pero he tenido que instalarlo como en 10 servidores asi que tal vez pueda ayudarte El Vie 08 Jul 2005 07:48, OÑATE Victor M NGS escribió:
Buenos días unas dudas con postgre espero me den una mano esta (largo) Baje el paquete postgre de la pagina oficial el .tar.gz El cual desempaqueté y descomprime luego leí el Install y seguí las instrucciones las cuales son:
./configure gmake su gmake install adduser postgres
"aquí no me funciono el adduser con lo cual lo tuve que agregar como un usuario mas por yast lo cual me imaginó que esta súper mal pero funciono"
El problema es que SuSE no existe el comando adduser sino useradd. En Slackware si se maneja el adduser.
mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
Al terminar todo esto el manejador esta listo y funciona pero me surgen las dudas:
1.- que son todos estos comandos?
mkdir /usr/local/pgsql/data Esta creando el directorio donde se almacenan las tablas y bases de datos chown postgres /usr/local/pgsql/data Le estas asignando el usuario postgres como propietario de dicho directorio. Postgres no corre como root, para eso se crea un usuario y se le debe dar permisos sobre su directorio de trabajo. Por estandar el directorio de trabajo de postgres debe ir en /var/lib/pgsql. Siempre es bueno seguir las convenciones. su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data Se inicializa la base de datos (se crea el esqueleto de tablas y templates, por asi decirlo). Se hace como usuario postgres para que los archivos y directorios pertenezcan a ese usuario. Si se hace como root no arranca la bd por permisos de archivos. /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & Estas iniciando el motor de Postgres (estas trabajando con el user posgres por cierto) . Si no arroja error ya tienes aqui el motor corriendo y estas mandando todo a segundo plano y guardando los logs en logfile. /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test Estas creando una BD llamanda test e ingresas a un entorno shell de sql a dicha BD con el segundo comando.
2.- No se agrega como un servicio es decir no esta en /etc/init.d/ entonces siempre esta funcionando? o debo crear un servicio mas lo cual no es problema pero que debe arrancar?
Cuando instalas desde las fuentes no se crean scripts de arranque y parada. Toca crearlos a mano o copiar los que tiene la distro adaptandolos a los direccitorios de trabajo y de ejecutables.
3.- la segunda duda es la del usuario me parece que esta mal la forma que lo agregue a pesar que funciona esto me trae ruido ya que en la maquina solo existe un solo usuario y ahora esta este otro. El usuario debería ser como es el de toncat y otros que existen pero no tienen un HOME ni grupo...
El usuario de postgres requiere normalmente un shell (no se le puede colocar /bin/false por ende). Como precaucion se le puede colocar de password uno que jamas pueda corresponder con lo que se digite en el login (esto se logra colocando el simbolo de '*' o el simbolo '!' sin las comillas en el shadow), y creandole su propio grupo. SuSE por defecto tiene estas configuraciones en /etc/passwd, /etc/shadow, /etc/group. /etc/passwd postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash /etc/shadow postgres:!:12453:0:99999:7::: /etc/group postgres:x:26: Generalmente lo que hago, no es crear los usuarios y grupos con addgroup y useradd sino editar los archivos mencionados directamente, y colocando algo similar a esto.
También por supuesto me baje el cliente grafico pgaccess lo descomprime en /usr/local pero al intentar iniciarlo me da el siguiente error
zion:/etc/init.d # pgaccess Error in startup script: couldn't load file "libpgtcl.so": libpgtcl.so: cannot open shared object file: No such file or directory while executing "load libpgtcl[info sharedlibextension]" (procedure "main" line 3) invoked from within "main $argc $argv" (file "/usr/local/pgaccess/main.tcl" line 249) zion:/etc/init.d #
Problema de la variable de ambiente LD_LIBRARY_PATH. Como instalaste en una ubicacion no estandar en las rutas de busqueda de librerias, debes confugurar esta variable antes de arrancar el programa. Algo como: export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH Si usas bash o sh. El tcsh el comando cambia pero el contenido de la variable es la misma.
También instale
pgadmin3-1.2.2-1.st2.i586.rpm
Funciona OK me pide el servidor le coloco 127.0.0.1 y funciona pero quiero que funciona con la interfaz eth0 que es 192.168.0.1 para de esta forma conectarme a ella desde otra pc
Debes agregar en archivo pg_hba.conf (esta en /usr/local/pgsql/data de tu instalacion ) los usarios y las ip's para poder conectarte desde otra maquina al postgres. Despues de hacer esto, debes reiniciar el motor. En el archivo estan las instrucciones. El metodo mas sencillo de autenticacion y medianamente seguro es md5. hasta la proxima. Carlos Martinez