Pb import Bdd

Bonjour,

Souhaitant choisir un hébergement fidèle à nos conviction, nous testons actuellement la plateforme afin de vérifier qu’elle est compatible avec notre site…

L’importation de la base pose problème, il a échoué plusieurs fois via phpmyadmin (la base est en effet assez grosse _ Joomla oblige…). j’ai également essayé via un script php, et j’ai la aussi une erreur :

Votre base est en cours de restauration…

Warning: system() has been disabled for security reasons in /space/www/gl-ouv/0/8/0811071027416247/web/ouvaton.org/amap-idf.ouvaton.org/html/importbase.php on line 4
C’est fini. Votre base est en place sur cet hébergement.

le script utilisé est le suivant :

<?php echo "Votre base est en cours de restauration.......
"; system("cat nom_de_la_base.sql | mysql --host=serveur_sql --user=nom_de_la_base --password=mot_de_passe_de_la_base"); echo "C'est fini. Votre base est en place sur cet hébergement."; ?>

quelqu’un a-t-il une idée à propos des “security reasons” ? Peut-on utiliser un accès ssh même temporaire ?

merci

Bonjour et bienvenue,

Je te fais une réponse très partielle.

[quote=amap-idf]L’importation de la base pose problème, il a échoué plusieurs fois via phpmyadmin (la base est en effet assez grosse _ Joomla oblige…). j’ai également essayé via un script php, et j’ai la aussi une erreur :
Warning: system() has been disabled for security reasons in /space/www/gl-ouv/0/8/0811071027416247/web/ouvaton.org/amap-idf.ouvaton.org/html/importbase.php on line 4
…]
quelqu’un a-t-il une idée à propos des “security reasons” ? Peut-on utiliser un accès ssh même temporaire ?[/quote]

Je ne connais pas les raisons qui empêchent d’utiliser la fonction system() mais elles peuvent se deviner assez facilement. Ce type de fonction - très puissante - si elle est détournée, doit pouvoir faire des dégâts importants. D’où, je suppose, cette sécurité.

Concernant l’accès SSH la réponse doit être non, à moins qu’un admin de la plateforme te fasse cette manip.

Via phpmyadmin cela devrait être possible en chargeant les tables les unes après les autres - quitte à fractionner le fichier texte lorsqu’une table est trop importante (cela dépend de la taille de chacune), sinon un script php un peu sioux avec temporisation fonctionnerait bien (mais je n’en ai pas sous la main…)

Bon courage,

Christian.

[quote=Christian Domec]Via phpmyadmin cela devrait être possible en chargeant les tables les unes après les autres - quitte à fractionner le fichier texte lorsqu’une table est trop importante (cela dépend de la taille de chacune), sinon un script php un peu sioux avec temporisation fonctionnerait bien (mais je n’en ai pas sous la main…)

Christian.[/quote]

En commande Unix, on peut en effet utiliser la commande split (ex : split - l 100 fichier.sql, pour séparer en fichiers de 100 lignes)…Après plus d’une heure passée à essayer de découper les fichiers et vérifier la cohérence des données séparés (parfois la séparation a lieu en plein milieu d’une commande sql…), je m’aperçois que ce n’est pas si simple que ça… certaines lignes étant parfois très “lourdes”, il faudrait limité importer les données ligne par ligne… ou sinon faut incorporer un script qui parse le code sql.

Autant dire qu’on est très loin d’une solution très productive ;:frowning:

Bonjour,

De manière très artisanale, personnellement, je m’y prendrais comme ceci :

  • je commencerais par créer un fichier .sql de travail (pour garder au chaud l’original),
  • dans le fichier .sql, je sélectionnerais les requêtes de création de tables (CREATE…), et les utiliserais pour ce faire via phpmyadmin. Et retirerais ces petits bouts du fichier de travail,
  • puis, je prendrais les “INSERT” par paquets, correspondant aux petites tables,
  • enfin pour les grosses tables ; soit je les découperais par paquets d’“INSERT” compatibles avec la taille maximum tolérée par phpmyadmin (de mémoire cela doit être 2Mo), soit (si c’est possible), j’utiliserais leur rendu en .CSV (un peu moins volumineux) pour faire de même.

C’est pas très rapide, mais cela devrait fonctionner (je l’ai déjà fait - en toute autonomie - plusieurs fois hors ouvaton).

Enfin, avant de balancer tout ça, je vérifierais le justesse de l’encodage du contenu des tables. Lire à ce propos le message d’Augustin ici -> http://webnews.ouvaton.coop/article.php?id=19032&group=tech.aide#19032 (ça, c’est histoire de faire froid dans le dos avant que l’année s’achève).

Bien sûr un transfert direct de ton fichier .sql serait moins laborieux. Mais, je ne peux rien faire pour toi.

Bon courage,

Christian.