Bases de datos PostgreSQL en cPanel
Bases de datos PostgreSQL en cPanel
PostgreSQL es un sistema de bases de datos relacional avanzado, potente y de codigo abierto. Es ideal para aplicaciones que requieren consultas complejas, integridad referencial y soporte para tipos de datos avanzados. cPanel te permite crear y gestionar bases de datos PostgreSQL directamente desde el panel de control.
1. Acceder a la gestion de PostgreSQL
Crear base de datos
Inicio → Bases de datos → PostgreSQL Databases
Herramientas de administracion
- phpPgAdmin: Inicio → Bases de datos → phpPgAdmin (interfaz web para gestionar bases de datos)
- Administrador de bases de datos: Para asignar usuarios y permisos
Nota: PostgreSQL esta disponible si tu proveedor lo tiene habilitado. Algunos proveedores solo incluyen MySQL/MariaDB.
2. Crear una base de datos PostgreSQL
- En PostgreSQL Databases, busca la seccion Create New Database.
- Escribe el nombre de la base de datos (ejemplo:
midb). - Haz clic en Create Database.
cPanel agregara automaticamente un prefijo con tu usuario (ejemplo: nubemons_midb). Anota el nombre completo, lo necesitaras para las conexiones.
Consejo: Usa nombres descriptivos pero cortos (sin caracteres especiales ni espacios).
3. Crear un usuario de PostgreSQL
- En PostgreSQL Databases, busca la seccion Add New User.
- Escribe el nombre del usuario (ejemplo:
miusuario). - Escribe una contrasena segura (usa el generador de contrasenas de cPanel).
- Confirma la contrasena.
- Haz clic en Create User.
cPanel creara el usuario con el prefijo de tu cuenta (ejemplo: nubemons_miusuario).
Importante: Guarda las credenciales (nombre de usuario y contrasena) en un lugar seguro. Las necesitaras para configurar tu aplicacion.
4. Asignar usuario a la base de datos
- En PostgreSQL Databases, busca la seccion Add User To Database.
- Selecciona el usuario en el menu desplegable.
- Selecciona la base de datos destino.
- Haz clic en Submit.
5. Configurar privilegios del usuario
Al asignar un usuario a una base de datos, puedes elegir los permisos:
Todos los privilegios (recomendado para usuarios administradores)
- Marca ALL PRIVILEGES para dar acceso completo.
- Haz clic en Make Changes.
Privilegios especificos
Si solo necesitas permisos parciales, selecciona:
| Privilegio | Que permite |
|---|---|
| SELECT | Leer datos de tablas |
| INSERT | Agregar nuevos registros |
| UPDATE | Modificar registros existentes |
| DELETE | Eliminar registros |
| CREATE | Crear tablas y bases de datos |
| DROP | Eliminar tablas y bases de datos |
| ALTER | Modificar estructura de tablas |
| INDEX | Crear y eliminar indices |
| REFERENCES | Crear restricciones de clave foranea |
Consejo: Para aplicaciones web, generalmente necesitas SELECT, INSERT, UPDATE y DELETE. No des permisos DROP o ALTER a menos que sea estrictamente necesario.
6. Gestionar bases de datos con phpPgAdmin
phpPgAdmin es una herramienta web que te permite gestionar bases de datos PostgreSQL de forma visual.
Acceder
Inicio → Bases de datos → phpPgAdmin
Operaciones principales
Ver bases de datos
- En el panel izquierdo, expande Servers → PostgreSQL.
- Veras la lista de bases de datos disponibles.
Crear tablas
- Selecciona la base de datos.
- Haz clic en la pestana SQL.
- Escribe la consulta CREATE TABLE:
CREATE TABLE usuarios ( id SERIAL PRIMARY KEY, nombre VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); - Haz clic en Execute.
Insertar datos
INSERT INTO usuarios (nombre, email) VALUES ('Juan Perez', '[email protected]');
Consultar datos
SELECT * FROM usuarios WHERE nombre LIKE '%Juan%';
Exportar base de datos
- Selecciona la base de datos.
- Haz clic en Export.
- Elige el formato (SQL es el mas comun).
- Haz clic en Download para guardar el archivo.
Importar base de datos
- Selecciona la base de datos.
- Haz clic en Import.
- Selecciona el archivo SQL desde tu computadora.
- Haz clic on Execute o Go.
7. Conexion desde una aplicacion
Credenciales de conexion
- Host:
localhost(generalmente) - Port:
5432(puerto por defecto de PostgreSQL) - Database: el nombre completo con prefijo (ejemplo:
nubemons_midb) - Username: el nombre completo con prefijo (ejemplo:
nubemons_miusuario) - Password: la contrasena que configuraste
Ejemplo en PHP (PDO)
$host = 'localhost';
$dbname = 'nubemons_midb';
$username = 'nubemons_miusuario';
$password = 'tu_contrasena';
try {
$pdo = new PDO("pgsql:host=$host;port=5432;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'Conexion exitosa';
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
Ejemplo en Python (psycopg2)
import psycopg2
connection = psycopg2.connect(
host='localhost',
port=5432,
database='nubemons_midb',
user='nubemons_miusuario',
password='tu_contrasena'
)
cursor = connection.cursor()
cursor.execute('SELECT version()')
print(cursor.fetchone())
8. Respaldo y restauracion
Respaldo via phpPgAdmin
- Selecciona la base de datos.
- Haz clic en Export.
- Selecciona formato SQL.
- Marca Structure and data.
- Haz clic en Download.
Respaldo via cPanel
- Ve a Asistente de copias de seguridad.
- Selecciona Download a MySQL Database Backup (aunque dice MySQL, muchos proveedores incluyen PostgreSQL aqui tambien).
- Selecciona la base de datos.
- Haz clic en Generate Backup.
Restaurar via phpPgAdmin
- Selecciona la base de datos destino.
- Haz clic en Import.
- Sube el archivo de respaldo SQL.
- Haz clic en Execute.
9. Consejos de seguridad
- Usa contrasenas seguras: Combina letras, numeros y caracteres especiales.
- No compartas credenciales: Cada aplicacion debe tener su propio usuario con permisos minimos necesarios.
- No uses el usuario root: Crea usuarios especificos para cada aplicacion.
- Restringe permisos: Otorga solo los privilegios que la aplicacion necesita.
- Mantene actualizado: PostgreSQL recibe actualizaciones de seguridad periodicamente.
- Limita acceso remoto: Si no necesitas conexion externa, usa solo
localhost.
10. Solucion de problemas
| Problema | Solucion |
|---|---|
| No veo PostgreSQL Databases en cPanel | Tu proveedor no tiene PostgreSQL habilitado; contacta a soporte |
| Error de conexion "Connection refused" | Verifica que el host sea localhost y el puerto 5432 |
| Error "Authentication failed" | Verifica el nombre de usuario y contrasena; recuerda los prefijos de cPanel |
| Error "Database does not exist" | Usa el nombre completo con prefijo (ejemplo: nubemons_midb) |
| phpPgAdmin no carga | Intenta recargar la pagina o contacta a soporte |
| No puedo crear tablas | Verifica que tu usuario tenga permisos CREATE en la base de datos |
| Consulta SQL muy lenta | Agrega indices a las columnas que usas en WHERE y JOIN |
11. PostgreSQL vs MySQL
| Caracteristica | PostgreSQL | MySQL |
|---|---|---|
| Tipo | Objeto-relacional | Relacional puro |
| Compatibilidad SQL | Muy alta | Alta |
| Tipos de datos | Mas avanzados (arrays, JSON, geometricos) | Estandar |
| Rendimiento | Excelente para consultas complejas | Excelente para lecturas simples |
| Transacciones | Completo ACID | Completo ACID (InnoDB) |
| Uso recomendado | Apps complejas, GIS, ciencia de datos | WordPress, apps web comunes |
Consejo: Si no sabes cual elegir, MySQL/MariaDB es la opcion mas comun y compatible con la mayoria de CMS como WordPress.