Comandos básicos de MariaDB en Debian

Comandos básicos de MariaDB en Debian

LAS CONEXIONES SIMULTÁNEAS PUEDE CAUSAR UNA CAÍDA EN MariaDB, y perder la conexión del sitio web de WordPress con la Base de Datos, causando un ERROR DE CONEXIÓN CON LA BASE DE DATOS.

Arrancar, detener y reiniciar

Arrancar MariaDB sudo systemctl start mariadb

Detener MariaDB sudo systemctl stop mariadb

Reiniciar MariaDB sudo systemctl restart mariadb

Estado del servicio

  • Ver estado (sin quedarse dentro del visor)bashsudo systemctl status mariadb --no-pager
  • Ver si arranca al inicio del sistemabashsudo systemctl is-enabled mariadb

Logs y errores

  • Ver últimos registros de MariaDBbashjournalctl -u mariadb -n 50 --no-pager
  • Ver logs en tiempo realbashjournalctl -u mariadb -f

Comprobación de conexión

  • Entrar al cliente MySQL/MariaDBbashmysql -u root -p
  • Probar conexión remotabashmysql -u usuario -p -h IP_DEL_VPS

Consejo: Si alguna vez te quedas “atrapado” viendo el estado con systemctl status, recuerda que basta con pulsar q para salir y volver al prompt.

Aquí tienes una mini‑guía de optimización de MariaDB para un VPS con 2 GB de RAM. Con estos ajustes tu servidor debería mantenerse estable y evitar que el sistema lo mate por falta de memoria.

⚙️ Configuración recomendada en /etc/mysql/mariadb.conf.d/50-server.cnf

Dentro del bloque [mysqld] añade o ajusta estas líneas:

ini

[mysqld]
# Memoria principal para InnoDB (ajustada a 256 MB para 2 GB de RAM)
innodb_buffer_pool_size = 256M

# Número máximo de conexiones simultáneas
max_connections = 100

# Tamaño máximo de tablas temporales en memoria
tmp_table_size = 64M
max_heap_table_size = 64M

# Caché de consultas (puede ayudar en sitios con muchas lecturas repetidas)
query_cache_size = 32M
query_cache_type = 1

# Limitar el tamaño del log binario si no usas replicación
expire_logs_days = 7
max_binlog_size = 100M

# Evitar que MariaDB consuma demasiada RAM en operaciones grandes
join_buffer_size = 2M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M

Pasos para aplicar

Edita el archivo: sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Añade el bloque [mysqld] con los parámetros anteriores.

Guarda con Ctrl+O, confirma con Enter y sal con Ctrl+X.

Reinicia MariaDB: sudo systemctl restart mariadb sudo systemctl status mariadb --no-pager

Consejos adicionales

  • Activa swap si tu VPS no la tiene, para evitar OOM‑kill:bashsudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
  • Monitoriza consumo con:bashhtop
  • Ajusta valores si notas que MariaDB sigue consumiendo demasiada RAM.

script automático pensado para tu VPS Debian con 2 GB de RAM. Este script ajusta los parámetros de MariaDB y activa un archivo de swap de 1 GB para evitar que el sistema vuelva a matar el proceso por falta de memoria.

Aquí tienes un script avanzado que no solo optimiza MariaDB y activa swap, sino que además monitoriza el servicioy lo reinicia automáticamente si detecta un fallo por OOM‑kill (falta de memoria).

Script avanzado: Optimización + Monitorización MariaDB

Guárdalo como mariadb_monitor.sh:

bash

#!/bin/bash
# Script avanzado para optimizar y monitorizar MariaDB en VPS Debian (2 GB RAM)

CONF="/etc/mysql/mariadb.conf.d/50-server.cnf"

echo "🔧 Ajustando configuración de MariaDB..."

# Añadir bloque [mysqld] si no existe
if ! grep -q "

\[mysqld\]

" $CONF; then
    echo "[mysqld]" | sudo tee -a $CONF
fi

# Añadir parámetros optimizados
sudo tee -a $CONF > /dev/null <<EOL
innodb_buffer_pool_size = 256M
max_connections = 100
tmp_table_size = 64M
max_heap_table_size = 64M
query_cache_size = 32M
query_cache_type = 1
join_buffer_size = 2M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
EOL

echo "✅ Configuración añadida a $CONF"

# Reiniciar MariaDB
sudo systemctl restart mariadb
echo "✅ MariaDB reiniciado"

# Crear swap de 1 GB si no existe
if ! grep -q "/swapfile" /etc/fstab; then
    echo "🔧 Creando archivo de swap de 1 GB..."
    sudo fallocate -l 1G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
    echo "✅ Swap activado y configurado en /etc/fstab"
else
    echo "ℹ️ Swap ya está configurado en el sistema"
fi

# Monitorización: comprobar si MariaDB está activo
echo "🔍 Comprobando estado de MariaDB..."
if ! systemctl is-active --quiet mariadb; then
    echo "⚠️ MariaDB no está activo. Intentando reinicio..."
    sudo systemctl restart mariadb
    if systemctl is-active --quiet mariadb; then
        echo "✅ MariaDB reiniciado correctamente tras fallo."
    else
        echo "❌ Error: MariaDB no pudo reiniciarse. Revisa logs con: journalctl -u mariadb -xe"
    fi
else
    echo "✅ MariaDB está activo y funcionando."
fi

echo "🎉 Script completado. MariaDB optimizado y monitorizado."

Cómo usarlo

Crea el archivo: nano mariadb_monitor.sh

Pega el contenido.

Guarda con Ctrl+O, confirma con Enter, y sal con Ctrl+X.

Dale permisos de ejecución: chmod +x mariadb_monitor.sh

Ejecútalo:./mariadb_monitor.sh

Soluciones prácticas

1. Ajustar max_connections

  • Con 2 GB de RAM puedes subirlo a 100 (como ya configuramos).
  • No conviene subirlo demasiado, porque cada conexión consume memoria.

2. Usar un pool de conexiones

  • Instala y configura un pool de conexiones (ej. ProxySQL o MariaDB MaxScale).
  • Esto permite que las aplicaciones web reutilicen conexiones en lugar de abrir nuevas cada vez.

3. Optimizar consultas

  • Revisa que las consultas SQL sean rápidas y usen índices.
  • Evita consultas pesadas que bloqueen la base de datos.

4. Cachear resultados

  • Usa memcached o Redis para cachear datos frecuentes y reducir la carga sobre MariaDB.

5. Escalar infraestructura

  • Si el tráfico sigue creciendo, considera:
    • Migrar a un VPS con más RAM.
    • Usar un balanceador de carga con varias instancias de base de datos.

Web Recomendada

Comandos SSH

Qué es un certificado SSL

Qué es un certificado SSL

Un certificado SSL sirve para cifrar la comunicación entre el navegador y el servidor, garantizando privacidad y autenticidad del sitio web. Además, muchos certificados incluyen una garantía monetaria ofrecida por la Autoridad de Certificación (CA), que puede cubrir al usuario final en caso de que el certificado falle y cause pérdidas económicas.

🔐 ¿Qué es un certificado SSL?

  • Es un certificado digital que autentica la identidad de un sitio web y habilita una conexión segura mediante HTTPS.
  • El protocolo SSL/TLS cifra los datos transmitidos (contraseñas, tarjetas de crédito, información personal), evitando que terceros los intercepten o manipulen.
  • El candado en la barra de direcciones indica que la conexión está protegida.

¿Existe un seguro monetario?

Sí, pero con matices:

  • Los certificados SSL incluyen una garantía que varía según el tipo y el proveedor.
  • Esta garantía es un compromiso de la CA (Autoridad de Certificación) de indemnizar económicamente al usuario final si el certificado falla por negligencia de la CA y provoca pérdidas financieras (por ejemplo, fraude en transacciones online).
  • Los montos de cobertura pueden ir desde 10.000 USD hasta 1.5 millones USD, dependiendo del nivel del certificado (DV, OV, EV).
  • Importante: esta garantía no protege al dueño del sitio web, sino al cliente que confía en el certificado. Es decir, si un visitante sufre un daño económico porque el certificado fue emitido de forma incorrecta, puede reclamar la indemnización.

Puntos clave

  • Propósito principal: seguridad y confianza en las transacciones online.
  • Seguro monetario: sí existe, pero solo en casos de fallo atribuible a la CA.
  • No cubre: errores del administrador del sitio, hackeos por mala configuración, ni fraudes ajenos al certificado.
  • Valor añadido: además de cifrado, el SSL mejora el SEO y la reputación del sitio.

El certificado SSL protege la comunicación y aporta confianza. La garantía monetaria es un respaldo adicional, pero solo aplica si la Autoridad de Certificación comete un error que cause pérdidas financieras.

Detalles del certificado EV SSL

  • Proveedor: Sectigo (una de las principales Autoridades de Certificación).
  • Precio: 126,95 € / año.
  • Tipo: Validación extendida (EV).
  • Proceso de validación:
    • Verificación exhaustiva de la identidad de la empresa solicitante.
    • Revisión de datos legales y de contacto.
    • Garantiza que el sitio web pertenece realmente a la entidad indicada.
  • Cobertura:
    • Cifrado fuerte de las comunicaciones (HTTPS).
    • Mayor confianza para clientes en transacciones online.
    • Incluye garantía monetaria para usuarios finales en caso de fallo atribuible a la CA (el importe depende del certificado, en Sectigo EV SSL suele rondar hasta 1 millón USD).

Diferencias frente a otros certificados

  • DV (Domain Validation): solo valida el dominio, más barato (~10–30 €/año).
  • OV (Organization Validation): valida la empresa, precio intermedio (~50–100 €/año).
  • EV (Extended Validation): máxima validación y confianza, precio más alto (~126,95 € ).

✅ Conclusión: Si buscas máxima credibilidad para un sitio corporativo o de comercio electrónico, algún proveedor sí ofrece el EV SSL de Sectigo a 126,95 €/año, con validación extendida y garantía monetaria para clientes.

La diferencia principal entre un certificado EV SSL y uno gratuito como Let’s Encrypt está en el nivel de validación, la garantía monetaria y la confianza que transmiten. Let’s Encrypt ofrece cifrado básico, mientras que el EV SSL proporciona validación empresarial completa y respaldo económico.

🔐 Comparativa: EV SSL vs Let’s Encrypt

CaracterísticaEV SSL (Extended Validation)Let’s Encrypt (Gratuito)
Precio100–300 USD/año (DonDominio: 126,95 €/año)Gratis
ValidaciónValidación extendida de empresa (documental)Validación de dominio (automática)
Confianza visualMuestra nombre legal de la empresa en el certificadoSolo muestra el candado HTTPS
Garantía monetariaSí (hasta 1 millón USD para usuarios finales)No incluye garantía económica
Soporte técnicoProfesional, con SLA y asistencia personalizadaLimitado o comunitario
Renovación automáticaManual o asistida por proveedorSí, cada 90 días
Uso recomendadoComercio electrónico, banca, institucionesBlogs, sitios personales, proyectos básicos

✅ ¿Cuál elegir?

  • Let’s Encrypt es ideal si necesitas cifrado básico, sin coste, y no manejas datos sensibles ni pagos.
  • EV SSL es imprescindible si tu sitio representa una empresa, gestiona transacciones, o necesita máxima confianza y respaldo legal.

Si tu web es corporativa o comercial, el EV SSL transmite profesionalismo y seguridad jurídica. Si es un blog o proyecto personal, Let’s Encrypt puede ser suficiente. ¿Quieres que te ayude a instalar uno u otro en tu hosting?

🐧 Cómo crear un subdominio en Linux (Apache)

🐧 Cómo crear un subdominio en Linux (Apache)

Crear un subdominio en Linux requiere acceso al servidor web (como Apache o Nginx) y al sistema de archivos del servidor. Aquí te explico cómo hacerlo paso a paso 🧑‍💻:

1. Crear el directorio del subdominio

bash

sudo mkdir -p /var/www/subdominio.midominio.com/public_html

2. Asignar permisos

bash

sudo chown -R $USER:$USER /var/www/subdominio.midominio.com/public_html

3. Crear el archivo de configuración del subdominio

bash

sudo nano /etc/apache2/sites-available/subdominio.midominio.com.conf

4. Agregar contenido al archivo

apache

<VirtualHost *:80>
    ServerAdmin admin@midominio.com
    ServerName subdominio.midominio.com
    DocumentRoot /var/www/subdominio.midominio.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

5. Activar el sitio

bash

sudo a2ensite subdominio.midominio.com.conf

6. Reiniciar Apache

bash

sudo systemctl restart apache2

7. Configurar DNS

En tu proveedor de dominio, crea un registro tipo A o CNAME apuntando subdominio.midominio.com a la IP de tu servidor.

Crear un subdominio en Linux usando Nginx 🐧:

1. Crear el directorio del subdominio

bash

sudo mkdir -p /var/www/subdominio.midominio.com/html

2. Asignar permisos

bash

sudo chown -R $USER:$USER /var/www/subdominio.midominio.com/html

3. Crear el archivo de configuración

bash

sudo nano /etc/nginx/sites-available/subdominio.midominio.com

4. Agregar contenido al archivo

nginx

server {
    listen 80;
    server_name subdominio.midominio.com;

    root /var/www/subdominio.midominio.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

5. Activar el subdominio

bash

sudo ln -s /etc/nginx/sites-available/subdominio.midominio.com /etc/nginx/sites-enabled/

6. Probar la configuración

bash

sudo nginx -t

7. Reiniciar Nginx

bash

sudo systemctl restart nginx

8. Configurar el DNS

En el panel de tu proveedor de dominio, crea un registro tipo A apuntando subdominio.midominio.com a la IP de tu servidor.

script automatizado en Bash para crear subdominios en Nginx fácilmente. Solo necesitas ejecutar este script en tu servidor Linux y seguir las instrucciones:

Script: crear_subdominio_nginx.sh

bash

#!/bin/bash

echo "🔧 Creación automática de subdominio en Nginx"

read -p "Introduce el nombre del subdominio (ej. blog): " SUBDOMINIO
read -p "Introduce el dominio principal (ej. midominio.com): " DOMINIO

FULL_DOMAIN="$SUBDOMINIO.$DOMINIO"
ROOT_DIR="/var/www/$FULL_DOMAIN/html"

# Crear directorio
sudo mkdir -p $ROOT_DIR
sudo chown -R $USER:$USER $ROOT_DIR

# Crear archivo de configuración
CONFIG_FILE="/etc/nginx/sites-available/$FULL_DOMAIN"
sudo tee $CONFIG_FILE > /dev/null <<EOF
server {
    listen 80;
    server_name $FULL_DOMAIN;

    root $ROOT_DIR;
    index index.html index.htm;

    location / {
        try_files \$uri \$uri/ =404;
    }
}
EOF

# Activar sitio
sudo ln -s $CONFIG_FILE /etc/nginx/sites-enabled/

# Probar y reiniciar
sudo nginx -t && sudo systemctl restart nginx

echo "✅ Subdominio $FULL_DOMAIN creado y activado."
echo "📁 Puedes subir contenido a: $ROOT_DIR"

¿Qué hace este script?

  • Te pide el nombre del subdominio y el dominio principal.
  • Crea el directorio raíz del subdominio.
  • Genera el archivo de configuración de Nginx.
  • Lo activa y reinicia Nginx.

Versión automatizada para Apache, similar a la que hicimos para Nginx. Con este script podrás crear subdominios en tu servidor Linux con Apache de forma rápida:

Script: crear_subdominio_apache.sh

bash

#!/bin/bash

echo "🔧 Creación automática de subdominio en Apache"

read -p "Introduce el nombre del subdominio (ej. blog): " SUBDOMINIO
read -p "Introduce el dominio principal (ej. midominio.com): " DOMINIO

FULL_DOMAIN="$SUBDOMINIO.$DOMINIO"
ROOT_DIR="/var/www/$FULL_DOMAIN/public_html"

# Crear directorio
sudo mkdir -p $ROOT_DIR
sudo chown -R $USER:$USER $ROOT_DIR

# Crear archivo de configuración
CONFIG_FILE="/etc/apache2/sites-available/$FULL_DOMAIN.conf"
sudo tee $CONFIG_FILE > /dev/null <<EOF
<VirtualHost *:80>
    ServerAdmin admin@$DOMINIO
    ServerName $FULL_DOMAIN
    DocumentRoot $ROOT_DIR
    ErrorLog \${APACHE_LOG_DIR}/$FULL_DOMAIN-error.log
    CustomLog \${APACHE_LOG_DIR}/$FULL_DOMAIN-access.log combined
</VirtualHost>
EOF

# Activar sitio
sudo a2ensite $FULL_DOMAIN.conf

# Probar y reiniciar
sudo apache2ctl configtest && sudo systemctl reload apache2

echo "✅ Subdominio $FULL_DOMAIN creado y activado."
echo "📁 Puedes subir contenido a: $ROOT_DIR"

¿Qué hace este script?

  • Te pide el nombre del subdominio y el dominio principal.
  • Crea el directorio raíz del subdominio.
  • Genera el archivo de configuración de Apache.
  • Lo activa y reinicia Apache.
Calculadora Web

Calculadora Web

Llévate esta práctica Calculadora Web a tu sitio web. Solo tienes que copiar el código iframe, y ya estará disponible para los visitantes de tu sitio web.

La calculadora es completamente funcional, y se adapta a todos los dispositivos. Disfrútala, y utilízala siempre que quieres en cualquier lugar y en cualquier dispositivo.

CÓDIGO IFRAME

Copia el siguiente código, y después insértalo en tu Blog o Sitio Web, para utilizar la Calculadora Web