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
bonjour, petit soucis une erreur bete je pense [ par jerome33610 ]
Bonjour, Pouvez-vous m'éclairer ? J'ai une erreur mais je ne met pas le doigt dessus, voyez ci-dessous voici l'erreur trouvé : Warning: mysql_fetch
Aide codage formulaire php pour base de données, toutes les données ne sont pas enregistrées. [ par sebing ]
Bonjour, Je redemande votre aide, je veux améliorer mon formulaire, mais celui ne fonctionne plus. En effet une seule donnée est enregistrée dans la
Export XLS [ par j3r3m067 ]
Bonjour, Voila je dois réaliser un export en XLS, de plusieur base de données (en faissant des jointures). Mon problème ce situe sur le fait que si je
problème connection base sql2008 [ par zuddap ]
Bonjour a tous, voila j'explique ma situation: je n'arrive pas a trouver le code qui me permet de connecté mon code php distant(serveur hébergé) a m
erreur puor recuperer les donnees d'une base de données [ par macadelino ]
Bonjour, j'essai de recuperer des valeurs dans une base de données,mais j'ai l'erreur suivante et toujours la meme erreur ,meme quand je change le scr
code d'exportation d'une base de donnée mysql vers excel [ par noursbts ]
bienvenueje veux le code de l'exportation d'une base de donnée mysql vers excel.
sauvegarde base de donnée [ par docteursas ]
BonjourJe travaille actuellement sur un projet. je dois installer l'application avec une base de données sur différents sites.j'aimerais avoir la poss
la base de donnee ne se connecte pas [ par koukitta303 ]
je travaille avec wamp mais ma base ne veut pas ce connecter j'utilise php.je veut bien qq1 qui m'aide merci
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
HTML VERS PDFHTML VERS PDF par spike911
Cliquez pour lire la suite par spike911
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|