Problème load data infile

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Minie
    a répondu
    Bon, j'ai enfin trouvé la solution à mon problème, je la pose ici au cas ou certains auraient le même souci.
    Je pense que c'est à cause de la nouvelle version php car tout fonctionnait très bien sans mon fix avant.

    Deux choses, tout d'abord j'ai du rajouter un paramètre à la connexion bdd car visiblement php n'autorise plus le local d'office même si il est activé sur le serveur, ce qui explique pourquoi ma requete fonctionnait dans la console SQL et non en PHP, j'ai donc rajouté "array(PDO::MYSQL_ATTR_LOCAL_INFILE => true)" en paramètre

    Code PHP:
    $bdd = new PDO('mysql:host=localhost;dbname=***bddname***;charset=utf8''***user***''***pass***', array(PDO::MYSQL_ATTR_LOCAL_INFILE => true)); 
    Deuxièmement, toute une partie de la requête est devenue obsolète, j'ai supprimé quelques lignes, et ca fonctionne nickel, ca devient donc :

    Code PHP:
    'LOAD DATA LOCAL INFILE "'.$lien.'"
        REPLACE INTO TABLE sv1r8_gixia_upload_jantes
        FIELDS
            TERMINATED BY ";"
        IGNORE 1 LINES (mes_champs)' 
    Tout ca a été possible uniquement car mon rapport d'erreur était assez nul, j'ai changé mon code de rapport d'erreur et j'ai enfin eu toutes les erreurs, voici donc le rapport d'erreur qui aide ...

    Code PHP:
    $bdd->query($query) or die(print_r($bdd->errorInfo())); 
    Voilà, tout est là pour le prochain qui tombera dedans !

    Laisser un commentaire:


  • Minie
    a répondu
    Merci, je vais tester

    Laisser un commentaire:


  • lefabdu51
    a répondu
    https://www.linuxtricks.fr/wiki/mysq...-de-passe-root

    This article describes how to reset MySQL's or MariaDB's root password on your workstation. It's meant for local development purposes only, don't do this in production. This article will also help you if you have a fairly recent MariaDB version that uses authentication based on linux users instea...
    Dernière édition par lefabdu51 à 07/06/2019, 08h38

    Laisser un commentaire:


  • Minie
    a répondu
    Envoyé par lefabdu51 Voir le message
    il faut redemarrer le service avec la bonne syntaxe et les options qui vont bien.
    oui, j'ai un accès SSH root, par contre je ne connais pas la manip pour redémarrer avec la bonne syntaxe et les options qui vont bien

    Laisser un commentaire:


  • lefabdu51
    a répondu
    tu as un accès ssh sur ce serveur ?
    il te faut les droits admin sur le serveur.
    il faut redemarrer le service avec la bonne syntaxe et les options qui vont bien.
    et tu peut te connecter directement sans avoir à entrer ton mdp root mysql, ce qui te permettras de le modifier via une requete sql.
    C est ce que je fait quand cela m arrives.
    Le temps d'indisponibilité est inversement proportionel au temps que tu passeras a ecrire la procédure.
    Normalement, c est 5 minutes maximum. Apres le quand c est a toi de voir selon les pics d activités du serveur concerné.
    Dernière édition par lefabdu51 à 04/06/2019, 21h20

    Laisser un commentaire:


  • Minie
    a répondu
    Linux et ses packets ont été installés par l'hébergeur
    Je n'ai donc pas choisi de mot de passe root MySQL.

    Lorsque je me log à PHP MyAdmin, c'est toujours sur une base de site en particulier via plesk, donc en tant qu'utilisateur de la base que j'ai créé simultanément.

    Laisser un commentaire:


  • roland_d_alsace
    a répondu
    Envoyé par Minie Voir le message
    ...

    Et oui, il me demande le mot de passe associé à l'utilisateur root MySQL, ....

    J'ai un dédié chez 1&1, je les ai appelé, et il ne l'ont pas, ...
    L'inverse serait anormal !
    Si c'est un serveur dédié, c'est bien toi qui a installé la distribution Linux et ses packets ?

    Et lors de l'install de mysql (ou de mariadb selon ton choix à l'époque), c'est bien toi qui a choisi le MdP de l'administrateur mysql.

    Et avec phpmyadmin tu te loggues avec quel compte et quel mot de passe ?

    Laisser un commentaire:


  • Minie
    a répondu
    Oui j'utilise bien Win SCP en tant que client SSH, très peu pour les commandes. Ca peut m'arriver pour passer des droits sur tout un joomla par exemple.
    Pour les commandes j'ai commencé avec Putty du coup.

    Et oui, il me demande le mot de passe associé à l'utilisateur root MySQL, et non SSH. Forcément j'ai le passe SSH mais je n'ai pas celui de root SQL. J'ai un dédié chez 1&1, je les ai appelé, et il ne l'ont pas, il faudrait que je coupe momentanément le service SQL pour faire la manip de réinitialisation de pass Root MySQL, et je ne peux pas me le permettre j'ai plus de 50 sites de clients sur ce serveur et je ne sais pas combien de temps je vais mettre pour cette manip.

    Laisser un commentaire:


  • lefabdu51
    a répondu
    winscp est une console ftp, pas une invite de commandes.
    Si tu veux un client simple a configurer utilise bitvise.

    Code:
    mysql -u root -p
    Quand tu entres ceci dans une console ssh, il te demandes le mot de passe associé à l'utilisateur.

    Laisser un commentaire:


  • Minie
    a répondu
    Toujours bloquée, je désespère

    Laisser un commentaire:


  • Minie
    a répondu
    Bon, j'ai installé putty, j'ai ouvert ma session ssh après avoir enfin capté qu'il fallait taper le pass à l'aveugle
    Mon pass Root ssh ne fonctionne pas en Root MySQL Tu suggérais de lancer la requête SQL dans putty ? Ou d'exécuter le fichier en ligne de commande ?
    Dernière édition par Minie à 23/05/2019, 12h37

    Laisser un commentaire:


  • roland_d_alsace
    a répondu
    En fait Win SCP installe putty.
    Pour preuve tu as bien le bouton "ouvrir dans putty", et là tu est en mode console sur ton serveur où tu peux lancer n'importe quelle commande linux dont mysql.

    et mysql -u root -p motdepasse doit obligatoirement fonctionner sinon c'est qu'il y a un problème sur ton serveur.

    Laisser un commentaire:


  • Minie
    a répondu
    Oui tu as raison, j'ai oublié cette partie car elle est très floue pour moi, en fait la seule console dont je me sert (avec des compétences très limitées) c'est la console de win scp en SSH.

    J'ai d'ailleurs essayé de me connecter à mysql avec "mysql -u root -p", ca mouline jusqu'à abandonner ... C’était une tentative de passer les plein droits à un user sql pour passer ma requête en load data infile au lieu de local puisque la local me donne une erreur 0- alors que sans local j'ai l'erreur normal de l'access denied

    Je ne connais pas Putty, mais ma console en win SCP revient t'elle au même ? Si oui, je suis dans le *** car lorsque je fais :
    mysql -u root -> access denied (normal)
    mysql -u root -p -> mouline puis deco
    mysql -u root -p motdepasse -> mouline puis deco

    Laisser un commentaire:


  • roland_d_alsace
    a répondu
    Envoyé par Minie Voir le message
    Bonjour,

    après moultes tests ... toujours en echec, mais avec quelques précisions.

    Je suis en dédié, et le local est activé

    Mes tests :

    1. Suppression du "LOCAL" dans la requete sql -> erreur accès denied (normal)
    2. Essai du script hors framework totalement indépendant avec sa propre connexion bdd -> aucune erreur, mais aucune execution SQL
    2.1 Tests avec echo de l'execution de la boucle, du chemin de fichier (encore) -> le dossier est bien lu, le fichier est bien trouvé, mais la requete ne s’exécute pas
    2.2 Test sans le "LOCAL" dans script externe -> pas d'erreur accès denied (pas normal car l'utilisateur n'a pas tous les privilèges)

    Voilà j'en suis là et je n'ai toujours pas réussi à refaire fonctionner ce **** de script qui fonctionnait très bien pendant des mois ...
    C'est donc plutôt un problème mysql.

    Quitte à me répéter, mais as-tu essayé le script sous mysql en mode console (linux) (avec putty ou autre).

    Ton hébergeur a peut-être changé de version mysql ou passé sous mariaDB (le comportement n'est pas toujours tout à fait pareil).

    Laisser un commentaire:


  • Minie
    a répondu
    Bonjour,

    après moultes tests ... toujours en echec, mais avec quelques précisions.

    Je suis en dédié, et le local est activé

    Mes tests :

    1. Suppression du "LOCAL" dans la requete sql -> erreur accès denied (normal)
    2. Essai du script hors framework totalement indépendant avec sa propre connexion bdd -> aucune erreur, mais aucune execution SQL
    2.1 Tests avec echo de l'execution de la boucle, du chemin de fichier (encore) -> le dossier est bien lu, le fichier est bien trouvé, mais la requete ne s’exécute pas
    2.2 Test sans le "LOCAL" dans script externe -> pas d'erreur accès denied (pas normal car l'utilisateur n'a pas tous les privilèges)

    Voilà j'en suis là et je n'ai toujours pas réussi à refaire fonctionner ce **** de script qui fonctionnait très bien pendant des mois ...


    lefabdu51

    Le fichier error.php n'est pas le souci, il ne faisait que masquer le souci

    Laisser un commentaire:

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X