Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mySQL ne fonctionne plus comme avant...

3 réponses
Avatar
Denis Beauregard
Bonjour,

J'ai modifié il y a quelques semaines mon installation de WAMP. Je
viens de demander la commande load data que je n'avais pas utilisée
depuis cette ré-installation et cela ne fonctionne plus. J'ai changé
de version de WAMP, ayant effacé certains fichiers du système suite à
un plantage de Windows 7.

WAMP semble bien fonctionner sauf cette commande !


load data infile
'C:/Users/moi/fichier.csv'
replace into table indi
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
lines terminated by '
'

J'ai eu d'abord une erreur de secure priv corrigée (nouvelle valeur
par défaut). Mais maintenant, j'ai cette erreur :

#1366 - Incorrect integer value: '' for column 'base' at row 1


J'utilise load data pour lire des fichiers CSV et il y a toujours
des valeurs disons irrégulières dans les colonnes avec des chiffres.
Cela a fonctionné pendant plusieurs années, avec sans doute une
version précédente de WAMP. Qu'est-ce que je dois changer pour
accepter des valeurs avec un format non prévu ?

base est bigint(20) et j'ai beaucoup de lignes vides ou du texte.


Denis

3 réponses

Avatar
Otomatic
Denis Beauregard
écrivait :
Cela a fonctionné pendant plusieurs années, avec sans doute une
version précédente de WAMP. Qu'est-ce que je dois changer pour
accepter des valeurs avec un format non prévu ?

Remettre la même version MySQL que celle avec laquelle il n'y avait pas
d'erreur.
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.net
Avatar
Denis Beauregard
Le Wed, 27 Mar 2019 09:57:20 +0100, Otomatic
écrivait dans fr.comp.applications.sgbd:
Denis Beauregard
écrivait :
Cela a fonctionné pendant plusieurs années, avec sans doute une
version précédente de WAMP. Qu'est-ce que je dois changer pour
accepter des valeurs avec un format non prévu ?

Remettre la même version MySQL que celle avec laquelle il n'y avait pas
d'erreur.

Cela n'aurait pas fonctionner car le problème était dans la
configuration (qui n'a pas été conservée).
La solution :
Activer ces lignes dans le fichier my.ini :
secure_file_priv=""
sql-mode=""
La 1re permet d'activer load data qui autrement ne peut lire que
les fichiers dans le dossier par défaut "c:/wamp/tmp" si wamp est
dans c:/wamp.
La 2e enlève les restrictions sur les données. Un texte lu dans un
chiffre devient 0.
Un problème de Windows 7 : si on copie des dossiers pour faire une
sauvegarde, la commande copy peut arrêter sans donner de raison.
Ici, je faisais :
xcopy c:wamp*.* cpwamp /D /E /H /Y /B /J
mais la copie arrête après une partie de binapache
La solution serait de lancer linux depuis un CD et de recopier
les dossiers importants dans la sauvegarde, comme windows et wamp.
Je ne sais pas si ajouter /C améliorera cela...
Denis
Avatar
Eric Demeester
Bonjour,
Denis Beauregard (Wed, 27 Mar 2019 09:07:08 -0400 -
fr.comp.applications.sgbd) :
secure_file_priv=""
sql-mode=""
La 1re permet d'activer load data qui autrement ne peut lire que
les fichiers dans le dossier par défaut "c:/wamp/tmp" si wamp est
dans c:/wamp.

C'est la principale limite de LOAD DATA, fonction par ailleurs magique
(ultra rapide, consommant peu de ressources) pour importer de gros csv à
toute vitesse.
La 2e enlève les restrictions sur les données. Un texte lu dans un
chiffre devient 0.

Désactiver cette sécurité peut avoir des effets de bord inattendus, à
mon humble avis, mieux vaut définir correctement ses champs et les
valeurs par défaut quand c'est possible.
Un problème de Windows 7 : si on copie des dossiers pour faire une
sauvegarde, la commande copy peut arrêter sans donner de raison.
Ici, je faisais :
xcopy c:wamp*.* cpwamp /D /E /H /Y /B /J
mais la copie arrête après une partie de binapache

C'est parce que cette commande ne permet pas de copier les fichiers
verrouillés par le système.
La solution serait de lancer linux depuis un CD et de recopier
les dossiers importants dans la sauvegarde, comme windows et wamp.
Je ne sais pas si ajouter /C améliorera cela...

Tu peux aussi utiliser un logiciel de sauvegarde, Cobian backup 11 reste
gratuit par exemple, ou shadowspawn si tu préfère la ligne de commande :
https://github.com/candera/shadowspawn