Cómo importar un archivo SQL grande en phpmyadmin

81

Quiero importar un archivo sql de aproximadamente 12 mb. Pero está causando problemas durante la carga. ¿Hay alguna forma de cargarlo sin dividir el archivo sql?

Jasmeet Kaur Chauhan
fuente
1
use algunas herramientas de mysql como mysql workbenchomysql Yog
diEcho
también puede verlo aquí stackoverflow.com/questions/9593128/… Dunn.
Estiércol
Si no puede usar la consola mysql, hay una solución interesante que proviene de la documentación de phpmyadmin: ozerov.de/bigdump
Paolo Gibellini

Respuestas:

97

Intente importarlo desde la consola mysql según el gusto de su sistema operativo.

mysql -u {DB-USER-NAME} -p {DB-NAME} < {db.file.sql path}

o si está en un servidor remoto, use la bandera -h para especificar el host.

mysql -u {DB-USER-NAME} -h {MySQL-SERVER-HOST-NAME} -p {DB-NAME} < {db.file.sql path}
manurajhada
fuente
1
Ok, gracias por revertir chicos. Hago cambios en php.ini y comprimo el archivo. Me funciona :)
Jasmeet Kaur Chauhan
3
forma más rápida de hacer esto!
Aris
1
Esta es una respuesta genial. Para cualquiera que no sea muy inteligente, puede simplemente cargar su archivo de base de datos en su administrador de archivos en su host, luego usar SSH en su host para operar localmente. Esto es mucho más fácil que instalarlo mysqlen su servidor para una sola migración. ¡Gracias por la ayuda chicos! (Además, no necesitaba corchetes)
DomainsFeatured el
1
Para aquellos que se preguntan, deben buscar su carpeta MySQL / bin para ejecutar el comando. Funcionó muy bien. Gracias.
Etienne Dupuis
1
¿Y que no tienen contraseña? utilizando la base de datos con el nombre de usuario predeterminado root? Usando este comando está pidiendo la contraseña.
Hkachhia
68

3 cosas que tienes que hacer:

en php.inisu instalación de php (nota: dependiendo de si lo desea para CLI, apache o nginx, busque el php.ini correcto para manipular)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

o establecer otros valores.

Reinicie / vuelva a cargar apache si tiene apache instalado o php-fpm para nginx si usa nginx.

¿Servidor remoto?

aumentará max_execution_timetambién, ya que llevará tiempo cargar el archivo.

¿Instalación de NGINX?

tendrás que agregar: client_max_body_size 912M;en /etc/nginx/nginx.confel http{...}bloque

Toskan
fuente
3
Respuesta correcta. Esas 3 líneas eran obligatorias
Esto debe agregarse a su directorio de apache, no al directorio cli (al menos según lo probado en mi caja de Ubuntu)
Bad_Neighbor
cambiar esto por /etc/php/7.1/apache2/php.inino funcionó
W.Doch
@RickSanchez, ¿está seguro de que ejecuta esta versión php en apache? ejecute phpinfo()y verifique que los valores se hayan configurado correctamente y que el servidor se haya reiniciado
Toskan
1
No olvide aumentar el valor max_execution_time en php ini y reiniciar apache
hamboy75
62

Edite el archivo config.inc.php ubicado en el directorio phpmyadmin. En mi caso se encuentra en C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php.

Busque la línea $cfg['UploadDir']que contiene y actualícela a$cfg['UploadDir'] = 'upload';

Luego, cree un directorio llamado 'upload' dentro del directorio phpmyadmin (para mí, en C:\wamp\apps\phpmyadmin3.2.0.1\upload\).

Luego coloque el archivo SQL grande que está intentando importar en el nuevo uploaddirectorio. Ahora, cuando vaya a la página de importación de db dentro de la consola phpmyadmin, notará un menú desplegable que no estaba allí antes: contiene todos los archivos sql en el directorio de carga que acaba de crear. Ahora puede seleccionar esto y comenzar la importación.

Si no está utilizando WAMP en Windows, estoy seguro de que podrá adaptarlo a su entorno sin demasiados problemas.

Referencia: http://daipratt.co.uk/importing-large-files-into-mysql-with-phpmyadmin/comment-page-4/

Siraj Khan
fuente
5
Con las versiones más recientes de phpMyAdmin, la var $ cfg ['UploadDir'] no existe en absoluto; sin embargo, esta solución todavía funciona simplemente agregando la var en una nueva línea en el archivo.
dan
La var se encuentra en config.default.php, del mismo directorio, estoy usando phpmyadmin versión 4.6.4
KAD
1
Ya no se pudo editar el comentario anterior, el directorio eslibraries/config.default.php
KAD
maravillosa solución después de pasar dos días probando la línea de comandos de MySQL con resultados fallidos.
youhana
22

Solución para USUARIOS de LINUX (ejecutar con sudo)

Cree directorios para 'cargar' y 'guardar':

mkdir /etc/phpmyadmin/upload
mkdir /etc/phpmyadmin/save
chmod a+w /etc/phpmyadmin/upload
chmod a+w /etc/phpmyadmin/save

Luego edite el archivo de configuración de phpmyadmin:

gedit /etc/phpmyadmin/config.inc.php

Finalmente, agregue la ruta absoluta para los directorios 'cargar' y 'guardar':

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

Ahora, simplemente suelte los archivos en la /etc/phpmyadmin/uploadcarpeta y luego podrá seleccionarlos desde phpmyadmin.

ingrese la descripción de la imagen aquí

Espero que esto ayude.

Guille Acosta
fuente
Con este método, phpmyadmin me File could not be read!envía un mensaje cuando hago clic en el botón enviar en el formulario de carga. En medio de solucionar este problema ahora.
@JoeRocc, ¿encontró una solución para su problema? Quizás sea un problema de permiso o propiedad. Prueba consudo chmod 777 your-filename.sql
Guille Acosta
2
775. No 777. No se debe recomendar configurar 777 para que todo funcione en un servidor en vivo. Tiene problemas de seguridad.
Koushik Das
15

Solo una línea y listo (asegúrese de que el comando mysql esté disponible como global o simplemente vaya a la carpeta de instalación de mysql y entre en la carpeta bin)

mysql -u database_user_name -p -D database_name < complete_file_path_with_file_name_and_extension 

aquí

  • u significa Usuario
  • p significa contraseña
  • D significa base de datos

--- NO OLVIDE AÑADIR UN <FIRMA DESPUÉS DEL NOMBRE DE LA BASE DE DATOS ---

La ruta completa del archivo con nombre y extensión puede ser como

c:\folder_name\"folder name"\sql_file.sql

--- SI SU CARPETA Y EL NOMBRE DE ARCHIVO CONTIENEN ESPACIO QUE LES ENCUENTRAN USANDO DOBLE CITA ---

Sugerencia y nota: puede escribir su contraseña después, -ppero esto no se recomienda porque se mostrará a otros que estén mirando su pantalla en ese momento, si no escribe allí, le preguntará cuándo ejecutará el comando presionando enter.

Vikas Khunteta
fuente
8

Cree un archivo zip o tar y cárguelo en phpmyadmin, ¡eso es todo ...!

Sachin de Pune
fuente
7

Pude importar un .sqlarchivo grande al tener la siguiente configuración en el httpd.confarchivo:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted

    php_admin_value upload_max_filesize 128M
    php_admin_value post_max_size 128M
    php_admin_value max_execution_time 360
    php_admin_value max_input_time 360
</Directory>
cosmintam
fuente
4

Tendrá que editar el archivo php.ini. cambie lo siguiente upload_max_filesize post_max_sizepara adaptarse al tamaño de su archivo.

Intentando correr phpinfo()para ver su valor actual. Si no tiene la libertad de cambiar el archivo php.ini directamente, intente ini_set ()

Si esa tampoco es una opción, le recomendamos que pruebe bigdump .

shxfee
fuente
3

Para eso, tendrá que editar el php.iniarchivo. Si está utilizando el servidor de ubuntu, este enlace Cargar archivo grande en phpMyAdmin podría ayudarlo.

Nikunj K.
fuente
Gracias, estuvo perfecto.
Morteza Sepehri Niya
2

Me encontré con un artículo y esto funcionó mejor para mí

  1. Abra el archivo config.inc.php dentro del directorio phpmyadmin con su editor de código favorito. En su entorno MAMP local, debería estar ubicado aquí:

Disco duro »Aplicaciones» MAMP »bin» config.inc.php

  1. Haz una búsqueda de la frase $cfg[‘UploadDir’]; se verá así:

$cfg['UploadDir'] = '';

  1. Cámbielo para que se vea así:

$cfg['UploadDir'] = 'upload';

  1. Luego, dentro de ese directorio phpmyadmin, cree una nueva carpeta y asígnele el nombre upload.

  2. Tome ese archivo grande .sql que está intentando importar y colóquelo en esa nueva carpeta de carga.

  3. Ahora, la próxima vez que vaya a importar una base de datos en phpMyAdmin, verá un nuevo campo desplegable justo debajo del área de exploración estándar en su sección "Archivo para importar".

Bobin Thomas
fuente
2

Ok, usa PHPMyAdmin, pero a veces la mejor manera es a través de la terminal:

  • Conéctese a la base de datos: mysql -h localhost -u root -p(cambie la raíz y el host local para la ubicación del usuario y la base de datos)
  • Iniciar la importación desde el volcado: \. /path/to/your/file.sql
  • Ve a tomar un café y presume de ti mismo porque usas terminal.

Y eso es. Solo recuerde que si está en un servidor remoto, debe cargar el archivo .sql en alguna carpeta.

Marcelo Agimóvel
fuente
2

la respuesta para aquellos con alojamiento compartido. Lo mejor es usar este pequeño script que acabo de usar para importar un archivo DB de 300 MB a mi servidor. El guión se llama Big Dump.

proporciona un script para importar bases de datos grandes en servidores con recursos limitados

c0d3x1337
fuente
Esta es una buena solución, pero recibió un voto negativo debido a que la URL puede ser inválida algún día. Por favor, agregue alguna información sobre este script, especialmente el nombre.
lugar de
su llamado gran volcado evita que el servidor SQL se detenga o se interrumpa al importar un archivo de base de datos grande al servidor. Por cierto, hay otras respuestas con URL que podrían caer en cualquier momento y ninguna de ellas ha sido rechazada
c0d3x1337
2

En MAMP, puede cargar archivos enormes mediante:

  1. creando una nueva carpeta en este directorio / MAMP / bin / phpMyAdmin / "folderName"

  2. y luego edite "/MAMP/bin/phpMyAdmin/config.inc.php" línea 531:

       $cfg['UploadDir']= 'folderName';   
    
  3. Copie sus archivos .sql o .csv en esta carpeta.

  4. Ahora tendrá otra opción en "PhpMyAdmin": seleccione en el directorio de carga del servidor web newFolder /: puede seleccionar su archivo e importarlo.

    ¡Podrías cargar cualquier archivo ahora!

Saad Joudi
fuente
1

La mejor manera de cargar un archivo grande no es usar phpmyadmin. porque phpmyadin al principio cargue el archivo usando la clase de carga php y luego ejecute sql que causa que la mayoría de las veces se agote el tiempo de espera.

la mejor manera es: ingrese la carpeta wamp> bin> mysql> bin dirrectory y luego escriba esta línea

mysql -u root -p listnames <latestdb.sql aquí listnames es el nombre de la base de datos al principio, cree la base de datos vacía y latestdb.sql es el nombre de su archivo sql donde se encuentran sus datos.

pero una cosa importante es si su archivo de base de datos tiene datos Unicode. debe abrir su archivo latestdb.sql y una línea antes de cualquier línea. la linea es:

SET NAMES utf8; entonces su modo de comando ejecuta este código de secuencia de comandos

tapos ghosh
fuente
1
  1. Abra su archivo sql en un editor de texto (como el Bloc de notas)
  2. Seleccionar todo -> Copiar
  3. Vaya a phpMyAdmin, seleccione su base de datos y vaya a la pestaña SQL
  4. Pegue el contenido que ha copiado en el portapapeles
  5. Puede aparecer un error de JavaScript, ignórelo
  6. Ejecutar
Teo Mihaila
fuente
¡No es una buena práctica! Los textos grandes causarán grandes problemas al hacer esto. La mejor manera es configurar php.ini para permitir grandes importaciones o importaciones a través de mysql.
Marcelo Agimóvel
0

Cambie la configuración de su servidor para permitir la carga de archivos de más de 12 MB y debería estar bien. Por lo general, la configuración del servidor se establece entre 5 y 8 MB para la carga de archivos.

Tschallacka
fuente
1
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación. - De la crítica
Sebastian Brosch
1
en realidad, en el momento en que se publicó esta respuesta, este era el error más común (hace 3 años) de que las cargas de archivos no eran lo suficientemente grandes por defecto. Está usando phpmyadmin == webinterface. importar == cargar desde el disco. upload == configuración del servidor. configuración del servidor == valores predeterminados que está en 5 u 8 mb hace 3 años. Entonces no veo cómo esto NO proporciona una respuesta. Sí, no le llevé de la mano cómo configurar exactamente porque no ha proporcionado qué servidor está usando, apache, ngix, iis, otro.
Tschallacka
0

Una solución es utilizar la línea de comandos;

mysql -h yourhostname -u username -p databasename < yoursqlfile.sql

Solo asegúrese de que la ruta al archivo SQL para importar se indique explícitamente.

En mi caso, usé esto;

mysql -h localhost -u root -p databasename < /home/ejalee/dumps/mysqlfile.sql

¡Voila! tú eres bueno para irte.

Ejalee
fuente
0

He creado un script PHP que está diseñado para importar grandes volcados de bases de datos que han sido generados por phpmyadmin. Se llama PETMI y puedes descargarlo aquí [página del proyecto] [página de gitlab] . Ha sido probado con una base de datos de 1GB.

desestimar
fuente
0

PHPmyadmin también acepta archivos comprimidos en formato gzip, por lo que puede gzip el archivo (use 7Zip si no tiene ninguno) y cargar el archivo comprimido. Dado que es un archivo de texto, tendrá una buena relación de compresión.

Marlon
fuente