La primera prueba para ver si puedes acceder al servidor de bases de datos es intentar crear una base de datos. Un servidor PostgreSQL en ejecución puede gestionar muchas bases de datos. Normalmente, se utiliza una base de datos independiente para cada proyecto o para cada usuario.
Es posible que el administrador de tu entorno ya haya creado una base de datos para tu uso. En ese caso, puedes omitir este paso e ir directamente a la siguiente sección.
Para crear una nueva base de datos desde la línea de comandos, en este ejemplo llamada
mydb, utilizas el siguiente comando:
$createdb mydb
Si esto no produce respuesta, significa que este paso se ha completado con éxito y puedes omitir el resto de esta sección.
Si ves un mensaje similar a:
createdb: command not found
significa que PostgreSQL no se ha instalado correctamente. O bien no se ha instalado en absoluto o la ruta de búsqueda de tu shell no se ha configurado para incluirlo. Intenta llamar al comando con una ruta absoluta en su lugar:
$/usr/local/pgsql/bin/createdb mydb
La ruta en tu entorno podría ser diferente. Ponte en contacto con tu administrador o comprueba las instrucciones de instalación para corregir la situación.
Otra respuesta podría ser esta:
createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
Esto significa que el servidor no se ha iniciado o no está escuchando donde createdb espera
encontrarlo. Una vez más, comprueba las instrucciones de instalación o consulta al administrador.
Otra respuesta podría ser esta:
createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "joe" does not exist
donde se menciona tu propio nombre de usuario. Esto ocurrirá si el administrador no ha creado una cuenta de usuario
de PostgreSQL para ti. (Las cuentas de usuario de PostgreSQL
son distintas de las cuentas de usuario del sistema operativo). Si eres el administrador, consulta Chapter 21
para obtener ayuda sobre la creación de cuentas. Tendrás que convertirte en el usuario del sistema operativo bajo el cual se
instaló PostgreSQL (normalmente postgres) para crear la primera cuenta de usuario.
También podría ocurrir que se te haya asignado un nombre de usuario de PostgreSQL que sea diferente
de tu nombre de usuario del sistema operativo; en ese caso, debes utilizar el modificador -U o configurar la
variable de entorno PGUSER para especificar tu nombre de usuario de PostgreSQL.
Si tienes una cuenta de usuario pero esta no dispone de los privilegios necesarios para crear una base de datos, verás lo siguiente:
createdb: error: database creation failed: ERROR: permission denied to create database
No todos los usuarios tienen autorización para crear nuevas bases de datos. Si PostgreSQL se niega a crear bases de datos para ti, entonces el administrador del entorno debe concederte permiso para crear bases de datos. Consulta al administrador si esto ocurre. Si instalaste PostgreSQL tú mismo, debes iniciar sesión para los propósitos de este tutorial con la cuenta de usuario con la que iniciaste el servidor. [1]
También puedes crear bases de datos con otros nombres. PostgreSQL te permite crear cualquier número de bases de datos en un entorno dado. Los nombres de las bases de datos deben comenzar con un carácter alfabético y están limitados a 63 bytes de longitud. Una opción conveniente es crear una base de datos con el mismo nombre que tu nombre de usuario actual. Muchas herramientas asumen ese nombre de base de datos por defecto, por lo que te puede ahorrar algo de escritura. Para crear esa base de datos, simplemente escribe:
$createdb
Si ya no deseas utilizar tu base de datos, puedes eliminarla. Por ejemplo, si eres el propietario (creador) de la base de
datos mydb, puedes destruirla utilizando el siguiente comando:
$dropdb mydb
(Para este comando, el nombre de la base de datos no toma por defecto el nombre de la cuenta de usuario. Siempre debes especificarlo). Esta acción elimina físicamente todos los archivos asociados a la base de datos y no se puede deshacer, por lo que solo debe hacerse con mucha prudencia.
Puedes encontrar más información sobre createdb y dropdb en createdb
y dropdb respectivamente.
[1]
A modo de explicación de por qué funciona esto: los nombres de usuario de PostgreSQL
son independientes de las cuentas de usuario del sistema operativo. Cuando te conectas a una base de datos, puedes
elegir con qué nombre de usuario de PostgreSQL hacerlo; si no lo haces, por defecto tomará
el mismo nombre que tu cuenta actual del sistema operativo. Resulta que siempre habrá una cuenta de usuario de
PostgreSQL que tenga el mismo nombre que el usuario del sistema operativo que inició el
servidor, y también resulta que ese usuario siempre tiene permiso para crear bases de datos. En lugar de iniciar sesión
como ese usuario, también puedes especificar la opción -U en todas partes para seleccionar un nombre
de usuario de PostgreSQL con el que conectarte.