¿Cuánto demora la restauración de una base de datos desde un archivo SQL de respaldo
En este debate responderemos a esta pregunta, tema sobre el cual te recomiendo seguir las etiquetas en el pie de esta entrada para ampliar información sobre las bases de datos y archivos SQL.
Según el tamaño del archivo de respaldo
El tiempo resultante dependerá dependerá de varios factores, tales como el tamaño de la base de datos y la configuración del propio servidor. En términos generales, según el tamaño del respaldo de la base de datos (valores aproximados):
- Archivos pequeños (< 10 ó 15 MB): Unos cuantos segundos.
- Archivos medianos (20 a 500 MB aprox.): Unos cuantos a varios minutos.
- Archivos grandes (> 700 mb a 1 GB): Desde varios minutos o bastante más, dependiendo del método usado.
Según el método de importación
- Mediante phpMyAdmin: Habitualmente lento para archivos de más de > 50/70 MB). Puede fallar por límites de tiempo.
- Línea de comandos (MySQL en SSH): mucho más rápido, recomendado para archivos grandes.
Según configuración del servidor
- CPU y RAM: Más recursos = más velocidad.
- Velocidad del disco: Un disco SSD acelera la importación.
- Carga del servidor: Muchas tareas en ejecució = importación más lenta.
Configuración de MySQL
- max_allowed_packet: si es bajo, la importación puede ser más lenta o fallar.
- innodb_flush_log_at_trx_commit=2: puede acelerar la importación en bases grandes.
Enlaces recomendados:
- Video en YouTube (en inglés) | Copia de seguridad de la base de datos MySQL: utilice SQL y PHPMyAdmin para realizar una copia de seguridad y restaurar una base de datos
- StackOverflow | How to change max_allowed_packet size
¡Sigamos aprendiendo, con fundamentos!
Plácido Luna
#basesDeDatos #MySQL #maxAlowedPacket #innodbFlushLogAtTrxCommit #servidoresWeb #phpMyAdmin #SQL
¿Cómo creo un usuario desde phpMyAdmin?
Desde phpMyAdmin es posible crear usuarios y asociarlos a una base:
Teniendo los permisos necesarios (en algunos servicios de hosting esta opción no está disponible), desde phpMyAdmin accedemos a la pestaña "Privilegios".
- Clic en "Añadir usuario" y configurar el nuevo usuario:
- Nuevo usuario: Ejemplo, usuario_wordpress.
- Servidor: Habitualmente "localhost" (si la base de datos está en el mismo servidor).
- Contraseña: Ingresar una contraseña segura.
Otorgar privilegios a la base de datos:
- En "Base de datos para la cuenta de usuario", marcamos "Otorgar todos los privilegios para la base de datos".
- Nota: La opción se muestra al momento de crear el usuario.
- Guardamos los cambios haciendo clic en "Continuar".
Importante:
Si phpMyAdmin no permite asignar usuarios desde phpMyAdmin, debemos hacerlo manualmente en MySQL desde la terminal (debemos tener permisos de acceso):
Desde SSH o consola:
mysql -u root -p
Creamos el usuario y le asignamos permisos:
CREATE USER 'nombreDeUsuario'@'localhost' IDENTIFIED BY 'contraseñaSegura'; GRANT ALL PRIVILEGES ON nombreDeLaBaseDeDatos.* TO 'nombreDeUsuario'@'localhost'; FLUSH PRIVILEGES;
Salimos de MySQL:
EXIT;
Déjanos tus consultas y comentarios y sigamos aprendiendo, con fundamentos.
Plácido Luna
¿Cómo creo una base de datos desde un respaldo SQL desde phpMyAdmin?
Veamos dos caminos, desde phpMyAdmin y desde la línea de comandos, con las consideraciones de cada caso.
1. Crear la base de datos importando desde phpMyAdmin
Teniendo los permisos necesarios para realizar la importanción:
- Si el archivo SQL incluye CREATE DATABASE, es posible importarlo sin necesidad de crear la base de datos manualmente.
- Pestaña "Importar", seleccionamos el archivo .sql correspondiente, y hacemos clic en "Continuar".
- La base se restaurará en una nueva base de datos, con los parámetros incluidos en el archivo SQL.
- Si el archivo NO incluye CREATE DATABASE, la base de datosdebe estar creada antes de realizar la importación.
¿Cómo sé si el respaldo contiene CREATE DATABASE?
Abre el archivo .sql en un editor de texto y revisa si tiene una línea como esta al inicio:
CREATE DATABASE nombre_de_tu_base; USE nombre_de_tu_base;
Ejemplo desde captura de pantalla:
- El código anterior vacía los datos de nombreDatabase
- En caso de no existir, creará una base con el mismo nombre, indicando en este caso el formato de codificación UTF8, el el formato de intercalación utf8mb4_unicode_ci (COLLATE).
2. Importar desde la línea de comandos (SSH, se requieren permisos)
Si tienes acceso SSH a tu servidor, puedes importar la base de datos con:
mysql -u usuario -p < archivo.sql
Si necesitas crear la base de datos primero:
mysql -u usuario -p CREATE DATABASE nombre_base; exit; mysql -u usuario -p nombre_base < archivo.sql
Debate relacionado:
¡Déjanos tus comentarios, aportes o nuevas consultas y sigamos aprendiendo, con fundamentos!
Saludos y bonita jornada para ti.
Plácido Luna.
#phpMyAdmin #administracionWeb #basesDeDatos #collate #utf8 #createDatabase #dropTable
¿Por qué, desde la opción "Bases de datos" de phpMyAdmin no veo la opción "Nueva base de datos"?
Veamos algunas posibles causas (todas ellas requieren de un hosting con acceso a la consola y los permisos necesarios):
1. Falta de permisos (habitualmente, lo más frecuente)
Si tu usuario de MySQL no tiene el permiso CREATE DATABASE, phpMyAdmin no mostrará la opción.
Solución (teniendo acceso a la terminal):
Accede a MySQL desde la terminal, con un usuario que tenga permisos (root o admin) y escribe:
mysql -u root -p
Verifica los privilegios del usuario que estás usando en phpMyAdmin mediante:
SHOW GRANTS FOR 'tu_usuario'@'localhost';
Si no los tiene, asigna los permisos necesarios:
GRANT ALL PRIVILEGES ON *.* TO 'tu_usuario'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
Cierra la sesión en phpMyAdmin y vuelve a ingresar.
Nota: Si tienes acceso con privilegios mayores, entonces bastará con cambiar de usuario.
2. El servidor MySQL tiene restricciones
Algunas configuraciones de MySQL pueden desactivar la creación de bases de datos.
Solución: El archivo de configuración de MySQL (que suele estar en /etc/mysql/my.cnf o /etc/my.cnf) es quien maneja estos permisos. Revisa y edita, si es necesario, sus restricciones. Luego, desde la consola, reinicia MySQL mediante:
sudo systemctl restart mysql
3. phpMyAdmin está en modo restringido
Otra posible causa es que phpMyAdmin está configurado con permisos limitados en su archivo de configuración.
Solución: Revisa y edita, en caso de ser necesario, el archivo config.inc.php de phpMyAdmin (generalmente en /etc/phpmyadmin/ o /var/www/html/phpmyadmin/).
¿Dudas, consultas o sugerencias?
Por favor, déjanos en los comentarios tus dudas, consultas o sugerencias, serán de mucho valor para todos.
Sigamos aprendiendo en comunidad.
Plácido Luna.
#phpMyAdmin #MySQL #configIncPhp #createDatabase #basesDeDatos #crearBaseDeDatos