IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Maximum execution time of 300 seconds exceeded [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut Maximum execution time of 300 seconds exceeded
    Bonjour,

    je dois importer une seule requête dans ma base de données suite à une migration BDD, cette requête est tout simplement un INSERT, ... très très longue, vraiment très très longue.

    Et il me serait impossible de la couper en deux vu la complexité des données qui s'y trouve.

    Par contre, y a t il une possibilité de modifier, la durée limite d'exécution afin de la passer à 600 seconds :

    Fatal error: Maximum execution time of 300 seconds exceeded in C:\wamp\phpmyadmin\libraries\string.lib.php on line 91


    voici la fonction sur la ligne 19 du fichier string.lib.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /**
     * Returns substring from string, works depending on current charset.
     *
     * @param   string   string to count
     * @param   int      start of substring
     * @param   int      length of substring
     *
     * @return  int      substring
     *
     * @access  public
     *
     * @author  nijel
     */
    function PMA_substr($string, $start, $length = 2147483647)
    {
        if (defined('PMA_MULTIBYTE_ENCODING') || $GLOBALS['PMA_allow_mbstr']) {
            return mb_substr($string, $start, $length);
        } else {
            return substr($string, $start, $length);
        }
    }
    Merci.

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    salut

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('max_execution_time', 0);
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Si tu maitrise le fichier d'exportation, recommence en utilisant 'SELECT INTO OUTFILE...' pour chacune des tables.
    Et pour l'importation 'LOAD DATA INFILE...'.
    C'est ce qu'il y a de plus rapide.
    Le détail se trouve ici :
    http://dev.mysql.com/doc/refman/5.0/fr/select.html

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par jeca Voir le message
    Bonjour,

    Si tu maitrise le fichier d'exportation, recommence en utilisant 'SELECT INTO OUTFILE...' pour chacune des tables.
    Et pour l'importation 'LOAD DATA INFILE...'.
    C'est ce qu'il y a de plus rapide.
    Le détail se trouve ici :
    http://dev.mysql.com/doc/refman/5.0/fr/select.html

    Non non, je peux pas utiliser cette méthode, j'ai mis plus de 3 heures à découper mon fichier Exporter .SQL de ma base en plusieurs petites parties ... et à faire les imports, je suis à la fin (il me reste plus que 3 requêtes )

    Merci,


    Par contre ça ...

    ini_set('max_execution_time', 0);
    j'sais pas ce que c'est, je sais pas ou c'est, je sais pas ou ça se met.

    C'est un peu du genre, le voyageur sur paris qui demande à un passant ou est la Gare de Lyon ? et on lui répond sans autre précision apparente : "par là".



    Cependant y a des instructions similaires dans les fichiers config.inc.php et php.ini que j'ai modifié en mettant 5000 au lieu de 300, valeur définit par défaut pour le " maximum execution time in seconds "

    Mais j'ai une autre exception levée qui est :

    Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 709870 bytes) in C:\wamp\phpmyadmin\libraries\sqlparser.lib.php on line 1858

    Là, je commence à me poser certaine question ...

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    Réponse :
    ______________________________________________
    Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)...
    No known problems
    Last modified: November 18, 2008 - 15:33

    That indicates that Drupal needed more memory than PHP was allowed to give it.

    Increase PHP's memory limit, either by adding:

    * memory_limit = 16M to your php.ini file (recommended, if you have access)
    * ini_set('memory_limit', '16M'); in your sites/default/settings.php file
    * php_value memory_limit 16M in your .htaccess file in the Drupal root

    Slightly more instructions on increasing PHP memory on your server in the installation guide.

    Some hosts allow a PHP.ini in the root of your site. Other hosts will not allow any modification of your capacity at all.

    Depending on the amount of modules you have enabled and their 'impact' on the site you may need to increase the memory_limit even more (sometimes to 32 MB or more). Image processing often takes a lot of memory, as can working with any large files. Experiment with what memory value works for your needs.

    Clearly, if your error was memory size of 16777216 bytes exhausted (16M) in the first place, then you are going to have to be bumping the limit up even higher than that. Do the binary thing and double it to 32M.

    You may need to restart your server before the php.ini settings take effect.

    Note: Do not just set an arbitrarily high number just to avoid this potential problem - it may limit your ability to have multiple simultaneous connections run efficiently, and simultaneous connections are important on webservers.
    ______________________________________________
    a+

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Moi c'est plutôt Montparnasse.

    Tu n'es pas un simple voyageur, tu as php.net à ta disposition et surtout google. Une recherche sur 'ini_set' aurait répondu à beaucoup de tes questions.


    Je précise cela en toute sympathie ^^

    ini_set — Modifie la valeur d'une option de configuration
    Description
    string ini_set ( string $varname , string $newvalue )

    Change la valeur de l'option de configuration varname et lui donne celle de newvalue . La valeur de l'option de configuration sera modifiée durant toute l'exécution du script et pour ce script spécifiquement. Elle reprendra sa valeur par défaut dès la fin du script.
    source php.net

    C'est une fonction qui se place généralement en début de fichier, notamment pour des scripts isolés.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('max_execution_time', 0);
    En choisissant la valeur '0' on indique qu'aucune limite est fixée.


    Pour ton second problème, soucis de taille alloué. Ton script prend trop de place en mémoire et dépasse la limite autorisé.

    Il est aussi possible de changer la valeur limite pour ton script :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set ( "memory_limit", "20M");

    Mais je ne pense pas que cela suffira...
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    Moi c'est plutôt Montparnasse.
    Lol,

    tu as php.net à ta disposition et surtout google.
    Les néophytes n'ont pas tous ce réflexe, crois moi.

    En toute modestie, j'avais la réponse de ce topic (que j'ai posté ) avant qu'il y ait de réponse, en faisant une petite recherche google en parallèle.

    Quel est l'intérêt d'ouvrir un post alors que deux minutes après j'avais la réponse via google ?

    Pensez aux autres ... développer le réseau et les sujets qui s'y rattachent.

    C'est pour cela que ta réponse, pas fausse, m'a semblé courte si un "petit pied (néophyte)" cherchait réponse à ce même problème.

    en toute sympathie aussi
    a+

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    plus simple tu utilise bigdump !!

    fais une recherche sur google tu va voir c'est magnifique tu n'a pas besoin de faire des découpe de ton fichier bigdump ce charge de tout!!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Wamp] Erreur instantannée -> Fatal error: Maximum execution time of 30 seconds exceeded
    Par Villon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/12/2012, 10h56
  2. Réponses: 2
    Dernier message: 30/10/2012, 12h46
  3. Fatal error: Maximum execution time of 30 seconds exceeded
    Par dubitoph dans le forum Doctrine2
    Réponses: 5
    Dernier message: 19/12/2011, 08h47
  4. [EasyPHP] Maximum execution time of 3000 seconds exceeded
    Par laurentSc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/11/2011, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo