mysqlimport via cron

mthanry

New Member
#1
Bonjour,

Après pas mal de temps perdu à essayer de trouver une solution à mon problème, je me lance enfin à faire appel à la communauté.

J'ai une tâche cron qui doit réaliser un import de données MySQL mais le script n'y parvient pas et l'erreur suivante m'est renvoyée par email:

Code:
Connecting to localhost
Selecting database appissim_***db***
Loading data from SERVER file: /home/appissim/***import_file*** into ***import_table***
mysqlimport: Error: 1045, Access denied for user 'appissim_***usr***'@'localhost' (using password: YES), when using table: ***import_table***
Les identifiants utilisés sont corrects (je peux me connecter et faire des inserts à distance avec les mêmes identifiants) et si je fais une erreur volontaire dans le mot de passe, j'ai alors l'erreur suivante:
Code:
Connecting to localhost
mysqlimport: Error: 1045 Access denied for user 'appissim_***usr***'@'localhost' (using password: YES)
Je viens de trouver la raison du problème. Il semble que l'utilisateur n'a pas le privilege FILE nécessaire à la réalisation de l'import en dépit d'avoir coché 'TOUS PRIVILEGES' quand j'ai ajouté l'utilisateur à la base de données.

J'espère que ce n'est pas le paramétrage par défaut pour l'hébergement mutualisé essentiel… parce que si c'est le cas, je ne pourrais pas héberger mon site sur le plan essentiel et c'est le seul que je puisse me payer pour l'instant…

HELP!!!

Michaël
 

pierre_kuhn

Active Member
#2
Bonjour

Est ce que tu as mis l'ip du serveur où tu as le fichier mysql dans la gestion phpmyadmin ?
 

mthanry

New Member
#3
Bonjour Pierre,

Oui, bien sûr mais le problème vient bien du privilège FILE qui n'est pas attribué aux utilisateurs mysql, j'en ai eu la confirmation de la part du support de PH hier.

Je ne peux donc pas utiliser la commande mysqlimport pour import mon fichier (tabulé) de 700 Mo. Je suis donc à l'heure actuelle obligé de convertir mon fichier en un fichier sql de 1,5 Go pour pouvoir l'importer avec la commandemysql (et donc sans avoir besoin du privilège FILE).

Le second problème est que cette méthode prend plus d'une heure pour importer les 17 millions de lignes dans ma base de données. Pas génial ni pour moi, nous pour PH…

---EDIT---
Je vais tenté de formater mon fichier d'import en une seule requête SQL, plutôt que 17 millions. Ca devrait passer un peu mieux.

c-à-d utiliser :
Code:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
au lieu de :
Code:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3);
INSERT INTO tbl_name (a,b,c) VALUES(4,5,6);
INSERT INTO tbl_name (a,b,c) VALUES(7,8,9);
Michael
 

pierre_kuhn

Active Member
#4
Re

je suis sur un projet qui demande une table de 1 200 000 lignes, c une librairies donc 3 tables de cette taille et on mets a jour le site en moins de 15 minutes en gros.
Si ça t'intéresse, dis le moi en privé histoire que je demande au copain comment c'est coder.
 

mthanry

New Member
#5
Merci Pierre pour ta proposition.

Mon compte a été suspendu aujourd'hui parce que ma tâche cron consomme trop de ressources CPU (1 à 2 min d'extraction de tarball) et mysql (insertion de 2-3 millions de lignes, j'ai revu le programme à la baisse)… malgré tout PH m'a gentiment dit de revoir ma consommation à la baisse sur le mutualisé et recommandé le VPS 1.

Pierre, j'ai plusieurs questions pour toi:
-connais-tu un bon guide pour la mise en œuvre d'un VPS?
-as-tu une distribution à recommander qui permette une administration facile? (lamp/dns/mail) + équivalent gratuit cpanel (ISPconfig??)
-je n'ai pas trouvé le numéro de la hotline en France. Le connais-tu?
-si tu as un peu plus de détails sur ton problème de somme posté sur la liste spip, je pense pouvoir d'aider, PM-moi si tu veux.

Merci;

Michael
 

mthanry

New Member
#8
Merci AsTr0 pour l'info.

Ca ne resoudrait malheureusement qu'une partie du probleme. La difficulte reside dans la delocalistion de l'extraction du tarball de 600-700 Mo que je dois telechargement tous les jours et duquel je dois extraire le seul fichier qui m'interesse. C'est cette operation qui pose probleme a PH (et a moi pour le coup).

Je peux faire le traitement de chez moi et mise a jour la base de donnees du serveur depuis mon client mysql local, a la rigueur. Je vais faire le test et telephoner a PH pour qu'il me dise l'inpact de cette methode en terme de charge du serveur. Par contre je sais deja que le temps d'execution sera plus long a cause du temps qu'il me faudra pour telecharger ce tarball hebdomadaire.

Pierre m'a dit (offline) que tu aurait peut-etre des recommandations quant aux outils a installer pour mettre facilement en oeuvre un VPS 1. Des suggestions?

Merci.

Michael
 
Haut