Accueil > Forum > > > > sauvegarde d'une base de donnee
sauvegarde d'une base de donnee
vendredi 23 avril 2004 à 15:57:19 |
sauvegarde d'une base de donnee

salley
|
Bonjour tout le monde, Voila, je viens juste de reprendre un projet de base de donnee auquel je dois ajouter quelques fonctionnalites. Pour cela je veux faire une sauvegarde de la base de donnee Online pour ensuite travailler en local. Mais le probleme est que cette base de donnee est vraiment enorme (plus de 800 000 entrees et 70MB) et lorsque je veux faire cette sauvegarde: - avec l'outil PHPmyadmin: j'ai des messages d'erreurs du style: | MySQL client run out of memory |
- avec le script phpmydump.php, cela marche pour les premieres entrees mais ensuite, j'a le message d'erreur suivant | Fatal error: Maximum execution time of 30 seconds exceeded in /home2/www/pastures/Kirt/admin_tools/phpmydump.php on line 181 |
- enfin j'ai essaye d'executer la commande (que j'execute avec l'outil phpMyAdmin du serveur Online: | BACKUP TABLE nom_de_table TO '/home2/www/pastures/Kirt/' |
mais ensuite j'ai le message d'erreur suivant | Access denied for user: 'pastures@localhost' (Using password: YES) |
Je pense que pour les deux premiers essais, je ne peux pas faire ma sauvegarde car ma base de donnees est trop grande mais pour le dernier essai avec la commande BaCKUP, je ne comprends pas l'erreur. Si vous pouviez me donner une idee cela me depanerrai bein. Merci Salley
|
|
vendredi 23 avril 2004 à 16:56:38 |
Re : sauvegarde d'une base de donnee

scoder
|
voilà un script que j'ai trouvé il y a quelques temps pour sauvegarder ma base mysql. il faut uploader le script sur la racine de ton ftp et lancer le fichier.
voilà le script :
<?php
// indiquer ici le serveur base ("localhost" sur levillage et lycos,
"sql.free.fr" sur free, etc.) $host="localhost";
//indiquer ici le nom de votre base (votrelogin_xxxx sur village, votrelogin_db sur lycos, votrelogin sur free) $base="mabase";
// indiquer ici l'user/utilisateur base (votrelogin_xxxx sur village.org,
votrelogin sur lycos et free ) $user="root";
// indiquer ici le pass de votre base (pass particulier possible sur levillage, pass du compte sur lycos et free) $pass="";
//////////////// remplir au moins ci-dessus: server nom login pass de la base
////////////////////
//Par défaut toutes les tables sont sauvegardées à la racine (là où est ce
fichier) // ajoutez entre les guillemets un critere de sélection, d'exclusion, un
dossier de stockage. $exclus = ""; // Ne pas sauver les tables dont le nom contient.. ici:
"_index_" (utile pour Spip) $prefixe = ""; // Ne sauver que les tables avec ce préfixe ex:
"spip_" $dossier = ""; // Dossier de stockage de la sauvegarde ex:
"ecrire/data/" (utile pour Spip)
// Sauvegarde compressée par défaut. Remplacer true par false pour ne pas
compresser, // ou si le serveur fait une erreur car il n'accepte pas la compression gz $gz = true;
$format = "INSERT"; // utiliser l'instruction SQL INSERT $insertComplet = true; // INSERT avec les noms des champs (sans: false)
echo "<br><H3>SAUVEGARDE DE VOTRE BASE DE DONNEES</H3>"; echo "<b>Sauvegarde FTP automatique,<br>puis vers votre ordinateur en cliquant
sur le lien</b><br>";
//CONNEXION $link = mysql_connect($host, $user, $pass); mysql_select_db($base) or die("Connexion impossible à la base de donnée
(vérifiez server nom login pass).");
function ecrire ($texte) { global $fp, $_fputs; $_fputs($fp, "$texte\n"); }
//calcul de la date $temps = time(); $jour = date("j", $temps); //format numerique : 1->31 $annee = date("Y", $temps); //format numerique : 4 chiffres $mois = date("m", $temps); $heure = date("H", $temps); $minutes = date("i", $temps);
//nom du fichier de sauvegarde: sauv_jj_mm_aaaa_nombase .gz si compressé ou
.sql si non compressé if ($gz) $ext = ".gz"; else $ext = ".sql";
// pour éviter un éventuel téléchargement par un tiers, remplacez ci-dessous
"sauv_" par "wcoqp_" ou autre $nom = $dossier . "sauv_" . $base . "_" . $prefixe . $jour. "_" . $mois. "_" .
$annee . $ext; // PS: pas grand chose à voir, les pass sont écrits en crypté...
$date = "$jour/$mois/$annee a $heure" . "h" . $minutes;
//creation et ouverture du fichier if ($gz) $fp = @gzopen($nom, "wb"); else $fp = fopen($nom, "wb"); if (! $fp) die("impossible de créer $nom."); $_fputs = ($gz) ? gzputs : fputs;
//ecriture entete du fichier ecrire("# sauvegarde de la base $base"); ecrire("# le $date");
// pour chaque table... $res = mysql_list_tables($base, $link); $num_rows = mysql_num_rows($res); $i = 0; while ($i < $num_rows) { $tablename = mysql_tablename($res, $i); // éviter les tables avec le préfixe signalé par $prefixe if (substr($tablename,0,strlen($prefixe)) != $prefixe) { echo
"<br><font color='pink'>> $tablename NON INCLUS ($prefixe non
souhaité)</font>";} else { // éviter les tables avec mot exclus signalé par $exclus if (strstr($tablename, $exclus)) {echo "<br><font color='pink'>>
$tablename NON INCLUS ($exclus non souhaité)</font>";} else{ // ecrire la structure de la table echo "<br>$tablename : <font color='blue'> Structure
OK </font>"; ecrire("# structure de la table $tablename"); ecrire("DROP TABLE IF EXISTS `$tablename`;\n"); // requete de creation de la table $query = "SHOW CREATE TABLE $tablename"; $resCreate = mysql_query($query); $row = mysql_fetch_array($resCreate); $schema = $row[1].";"; ecrire("$schema\n");
// ecrire le contenu de la table echo "<font color='green'> Données OK </font>"; ecrire("# donnees de $tablename"); $query = "SELECT * FROM $tablename"; $resData = mysql_query($query); if (mysql_num_rows($resData) > 0) { $sFieldnames = ""; if ($insertComplet) { $num_fields =
mysql_num_fields($resData); for($j=0; $j < $num_fields; $j++) { $sFieldnames .=
"`".mysql_field_name($resData, $j) ."`"; if ($j<$num_fields-1) $sFieldnames .=
", "; } $sFieldnames = "(" . $sFieldnames .
")"; } $sInsert = "INSERT INTO `$tablename`
$sFieldnames values "; while($rowdata = mysql_fetch_assoc($resData)) { $lesDonnees =
"<guillemet>".implode("<guillemet>, <guillemet>", $rowdata)."<guillemet>"; $lesDonnees =
str_replace("<guillemet>", "'", addslashes($lesDonnees));
if ($format == "INSERT") $lesDonnees =
"$sInsert($lesDonnees);"; ecrire("$lesDonnees\n"); } } } $i++; } }
ecrire("# ------- fin ------------");
// fermer le fichier if ($gz) gzclose($fp); else fclose($fp);
echo "<br><br><b>Sauvegarde FTP finie !</b><br><br>"; echo "Fichier de sauvegarde : <font color='blue'> $nom </font>(" .
ceil(filesize("$nom")/1024) . " Ko).";
echo "<br><br><b>Pour le télécharger sur votre ordinateur:</b> <a
href='$nom'>CLIQUER ICI</a><br><br>"; echo "(N'oubliez pas de supprimer vos anciennes sauvegardes régulièrement)";
?>
pour récupérer ta base après ça devient galère, en tout cas je ne l'ai pas encore fait puisque je n'ai pas eu de prob heureusement, mais mon fichier de backup fait 25Mo, soit + de 10000 pages sous word et il est impossible de le récupérer avec mysql car le délai est trop long.... je ne m'y connais pas trop en la matière mais peut être qu'en affectant tout le contenu de ton fichier à une variable, et en exécutant cette variable en tant que requête ça peut marcher mais je ne garantis rien.
bon courage!
|
|
vendredi 23 avril 2004 à 17:37:40 |
Re : sauvegarde d'une base de donnee

salley
|
Merci pour le code mais en fait j'en ai deja un ; phpmydump et le probleme qui se pose est qu'au bout de 30 seconde le code se stoppe, c la limite d'execution par defaut de pas mal d'hebergeur.
N'ayant pas acces au fichier de configuration php.ini de mon hebergeur, j'ai essayer de mettre la fonction set_time_limit(200) dans le script de phpmydump mais maintenant ce qui se passe c'est que le script se stoppe un peu apres (il a le temps de sauvegarder 22000 entrrees au lie de 19000)
Finalement, le script se stoppe quand meme largement avant les 200 secondes que j'ai fixe mais cela ne cree pas de "fatal error".
Salley
|
|
vendredi 23 avril 2004 à 17:42:22 |
Re : sauvegarde d'une base de donnee

scoder
|
Désolé mais dans ton cas je ne vois pas du tout quoi faire..... Je vais y penser et regarder si j'ai pas un script qui traine mais j'en doute
SCoder
|
|
mercredi 18 août 2004 à 12:13:01 |
Re : sauvegarde d'une base de donnee

porciner
|
J'ai exactement le meme problème que toi, je suis chez lycor (version pme) et impossible de sauvegarder ma base. Si quelqu'un à une idée ou si une solution à été trouvé postez la svp. Merci.
|
|
jeudi 19 août 2004 à 09:11:33 |
Re : sauvegarde d'une base de donnee

salley
|
Salut porciner, En fait ce que j'ai fais, c'est que jai utilisé le protocole SSH (une sorte de Telnet sécurisé) pour avoir directement accés au shell du serveur de mon herbergeur et donc ne pas être gêner par les limitations de Apache, PHP ou MySQL. Salut porciner, En fait ce que j'ai fais, c'est que jai utilisé le protocole SSH (une sorte de Telnet sécurisé) pour avoir directement accés au shell du serveur de mon herbergeur et donc ne pas être gêner par les limitations de Apache, PHP ou MySQL. Pour cela, j'ai utilisé le logiciel PuTTY (logiciel gatuit). Ensuite j'ai utilisé l'outil mysqldump qui est fournis avec mySQL, donc j'ai tapé la commande: mysqldump -q name_of_the database > name_of_the_backup.sql -p password
|
avec -q: option pour socket UNIX name_of_the database: nom de ta base de donnée name_of_the_backup.sql: nom de la sauvegarde de ta base donnée -p:option d'éctiure (utile pour les grosses bases de données) password: mot de passe pour accéder à ta base de donnée. Après cela, tu n'as plus besoin que d'aller chercher ta base do donnée sur le serveur de ton herbergeur grâce à un logiciel FTP. Si tu as encore des problèmes n'hésite pas. Salley
|
|
mardi 17 mai 2005 à 16:56:39 |
Re : sauvegarde d'une base de donnee
|
lundi 1 août 2005 à 15:34:05 |
Re : sauvegarde d'une base de donnee

kalamya
|
Merci Scoder !!!!!!!!!!!!!  Tu n'imagines pas combien de temps j'ai bataillé pour trouver un exemple simple et qui fonctionne surtout !! Je suis sûre que tu ferais beaucoup d'heureux si tu le mettais dans les sources à consulter sur le site. Encore merci !!!!
|
|
Cette discussion est classée dans : base, code, erreur, donnee, sauvegarde
Répondre à ce message
Sujets en rapport avec ce message
erreur dans mon code + MySQL [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : j'ai un programme qui per
affichage d'une erreur lors de connection a ma base de données [ par jcoq6340 ]
slt, je viens de débuter avec php. voila mon problème ce code permet de saisir des infos(un pseudo et un message) et les sauvegarder dans une base de
erreur de connection sur la base de donnee [ par alhousseine ]
bonjour j'utilise easyphp 5.3.2 et quand je lance un test de connection à la base de donnee il m'affiche un message d'erreur qui est: en plus on me
probleme de connexion a une base de donnee [ par trek9505 ]
Bonjour, Je suis débutante en php et j'ai un soucis avec mon code. Voici l'erreur qui s'affiche : "You have an error in your SQL syntax; check the ma
mettre à jour chaque ligne du champ [ par theking77 ]
Bonjour à tous j'ai un petit souci sur mon code, je vous montre ma base + le code la base de donnee : ID | temps 1 | 35 2 | 25 3 | 15 et voici
Probleme Connection en PHP [ par geof2810 ]
Bonjour a tous, voila j'ai fais plusieurs demandes sur ce forum pour des problemes avec un code de connection... Mais voila maintenant j'ai une erre
Problème d'essence ^^ IF ... ELSE ... [ par NextGenration ]
Bonjour et tout mes voeux pour cette nouvelle année à ceux et celles qui lirons ce post! Comme dit plus haut, j'ai un problème d'IF ! je passe outre
PHP, ODBC et MSSQL [ par FearHaCk ]
Bonjour à tous, je suis actuellement en stage et je travaille sur une base de donnée SQL SERVER 2000 via un serveur linux et un driver ODBC (FreeTDS).
Extraire l'année , mois et jour de la base donnée sans les heures [ par ramk ]
Bonjour ,j'ai dans ma base de donnée un type timestamp (yyyy-MM-dd h:m:s) je voudrais récupérer juste "yyyy-MM-dd" dans ma requete sql. [code=php] $
Lire/traduire du code php depuis la base de donnée [ par bruce207 ]
Bonjour, j'ai un code en php qui s'execute lorsque je l'insère directement dans la page php (il sert à affiché un diaporama) et il s'affiche alors sur
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|