test query into form example php mysql sql phpmyadmin xampp

query - php test mysql connection



PHP: tiempo máximo de ejecución al importar un archivo de datos.SQL (9)

Estoy tratando de importar un archivo de datos .sql grande usando phpMyAdmin en XAMPP. Sin embargo, esto está tomando mucho tiempo y sigo recibiendo:

Error grave: se excedió el tiempo máximo de ejecución de 300 segundos en C: / xampp / phpMyAdmin /raries / dbi / DBIMysqli.class.php en la línea 285

Y el archivo tiene aproximadamente 1,2 millones de líneas de largo.

El archivo tiene aproximadamente 30 MB de tamaño, por lo que no es tan grande. Realmente no entiendo por qué está tomando tanto tiempo.

;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; ; Maximum execution time of each script, in seconds ; http://php.net/max-execution-time ; Note: This directive is hardcoded to 0 for the CLI SAPI max_execution_time=30000 ; Maximum amount of time each script may spend parsing request data. It''s a good ; idea to limit this time on productions servers in order to eliminate unexpectedly ; long running scripts. ; Note: This directive is hardcoded to -1 for the CLI SAPI ; Default Value: -1 (Unlimited) ; Development Value: 60 (60 seconds) ; Production Value: 60 (60 seconds) ; http://php.net/max-input-time max_input_time=60 ; Maximum input variable nesting level ; http://php.net/max-input-nesting-level ;max_input_nesting_level = 64 ; How many GET/POST/COOKIE input variables may be accepted ; max_input_vars = 1000 ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit=200M

Es el archivo de configuración para php.ini en xampp, por alguna razón todavía me sale

Error grave: Tiempo de ejecución máximo de 300 segundos excedido en C: / xampp / phpMyAdmin /raries / dbi / DBIMysqli.class.php en la línea 285.


¿Es un archivo .sql o está comprimido (.zip, .gz, etc.)? Los formatos comprimidos a veces requieren más recursos PHP, por lo que puede intentar descomprimirlos antes de cargarlos.

Sin embargo, hay otros métodos que puedes probar también. Si tiene acceso a la línea de comandos, simplemente cargue el archivo e importe con el cliente de la línea de comandos mysql (una vez que aparezca en el indicador de comandos mysql> , use databasename; luego source file.sql ).

De lo contrario, puede usar la función phpMyAdmin "UploadDir" para colocar el archivo en el servidor y hacer que aparezca en phpMyAdmin sin tener que cargarlo también desde su máquina local.

Este enlace tiene información sobre el uso de UploadDir y este tiene algunos consejos y métodos más.


Bueno, para deshacerte de esto necesitas establecer la variable phpMyadmin en 0 que sea ilimitado o en cualquier valor en segundos que encuentres adecuado para tus necesidades. O siempre puede usar CLI (interfaz de línea de comando) para no obtener tales errores (por lo que le gustaría ver este enlace) .

Ahora sobre el error aquí, primero en el lado seguro, asegúrese de haber configurado los parámetros de PHP correctamente para poder cargar archivos grandes y usar el tiempo máximo de ejecución desde ese extremo. Si no es así, siga adelante y establezca los siguientes tres parámetros del archivo php.ini:

  1. max_execution_time = 3000000 (Establezca esto según su requisito)
  2. post_max_size = 4096M
  3. upload_max_filesize = 4096M

Una vez hecho esto, vuelva a encontrar el archivo de configuración de phpMyadmin llamado algo como "config.default.php". En XAMPP, lo encontrarás en la carpeta "C: / xampp / phpMyAdmin /raries". Abra el archivo llamado config.default.php y establezca:

$cfg[''ExecTimeLimit''] = 0;

Una vez configurado, reinicie su MySQL y Apache y vaya a importar su base de datos.

Disfrutar ... :)


Después de probar muchas cosas sin éxito, logré obtener acceso SSH al servidor e importar mi base de datos de 80 Mb con una línea de comandos, en lugar de phpMyAdmin. Aquí está el comando:

mysql -u root -p -D mydatabase -o < mydatabase.sql

Es mucho más fácil importar bases de datos grandes, si está ejecutando xammp en Windows, la ruta para mysql.exe es C:/xampp/mysql/bin/mysql.exe


Estás intentando importar un gran conjunto de datos a través de una interfaz web.

De forma predeterminada, los scripts PHP ejecutados en el contexto de un servidor web tienen un límite de tiempo máximo de ejecución porque no desea que un solo script PHP errante complique todo el servidor y provoque una denegación de servicio.

Por esa razón su importación está fallando. PHPMyAdmin es una aplicación web y está llegando al límite impuesto por PHP.

Puede intentar aumentar el límite, pero ese límite existe por una buena razón, por lo que no es aconsejable. Ejecutar un script que va a tardar mucho tiempo en ejecutarse en un servidor web es una muy mala idea.

PHPMyAdmin no está realmente diseñado para trabajos pesados ​​como este, sino para tareas cotidianas de mantenimiento y resolución de problemas.

Su mejor opción es usar las herramientas adecuadas para el trabajo, como las herramientas de la línea de comandos mysql. Suponiendo que su archivo es un volcado de SQL, entonces puede intentar ejecutar lo siguiente desde la línea de comandos:

mysql -u(your user name here) -p(your password here) -h(your sql server name here) (db name here) < /path/to/your/sql/dump.sql

O si no se siente cómodo con las herramientas de línea de comandos, entonces algo como SQLYog (para Windows), Sequel Pro (para Mac), etc. puede ser más adecuado para ejecutar un trabajo de importación



Hay una variable de configuración dentro del directorio phpMyAdmin que puede encontrar en las libraries/config.default.php llamada $cfg[''ExecTimeLimit''] que puede establecer en el tiempo máximo de ejecución que necesite.


Lo siguiente podría ayudarte:

ini_set(''max_execution_time'', 100000);

Y en su mysql - max_allowed_packet=100M en algunos casos donde las consultas son demasiado largas, también se produce un error y "el servidor MySQL se ha ido";

Cambia los valores a lo que necesites.


Puede aumentar el límite:

ini_set(''max_execution_time'', 3000);

(Tenga en cuenta que esta secuencia de comandos también puede causar un alto uso de memoria, por lo que probablemente también tenga que aumentar eso)

Otra posible solución: fragmentar su archivo SQL y procesarlo como partes. Supongo que no es una gran consulta SQL, ¿verdad?

Actualización: como lo señaló @Isaac, se trata de PHPMyAdmin. En este caso, establezca max_execution_timeout en php.ini. (La ubicación depende de su entorno)