Page 1 sur 2
mysqldump pour plusieurs tables
Posté : 04 août 2012, 18:01
par francoisch
bonjour
Je veux sauvegarder plusieurs tables MySql en utilisant mysqldump en Php.
Quand je fais :
Code : Tout sélectionner
mysqldump –host=myhost --user=moimeme --password=rintintin --tables tab1 tab2 > fichier_dump.sql
je n’obtiens rien.
Mais j’obtiens bien la liste de ces tables, tab1, tab2, … avec un SHOW TABLES, donc elles existent dans cette base.
Merci par avance de votre aide.
Francois
Re: mysqldump pour plusieurs tables
Posté : 04 août 2012, 18:13
par xTG
Il manque une information dans cette commande.
Tu as l'host, les identifiants mais pas la base de données.

Re: mysqldump pour plusieurs tables
Posté : 04 août 2012, 20:49
par francoisch
Dans ce que je trouvais dans les forums, un coup il y avait la base, un coup elle n'y était pas.
Je l'ai ajoutée:
Code : Tout sélectionner
system("mysqldump --host=".$siteServeur." --user=".$siteNom." --password=".$sitePasse." ".$siteBase." --tables phpbb_forums phpbb_log > tables.sql");
en faisant mon test avec deux tables, sans résultat positif.
Francois
Re: mysqldump pour plusieurs tables
Posté : 07 août 2012, 15:19
par Calimero
Il faudrait d'abord t'assurer du bon fonctionnement de la commande en interactif avant d'essayer en php, avec des variables partout, dont tu n'es pas sûr qu'elles contiennent des valeurs correctes... Ainsi tu pourras bénéficier d'éventuels messages d'erreur.
Re: mysqldump pour plusieurs tables
Posté : 08 août 2012, 11:42
par francoisch
bonjour
Ma ligne de commande peut paraître difficile mais j'en ai recopié l'essentiel d'un mysqldump qui fonctionne pour sauvegarder toute la base.
Comment tester ma commande en interactif? Mon PC est en Windows, pas en Linux.
Je teste effectivement en interactif mes requêtes Sql mais je n'ai pas l'impression que mysqldump fonctionne en PhpMyAdmin.
Merci de ton aide.
Francois
Re: mysqldump pour plusieurs tables
Posté : 08 août 2012, 12:51
par xTG
Ton serveur MySQL est bien installé sur ton poste windows ou sur un serveur distant ?
1er cas > MySQL donne les mêmes commandes sous linux que sous windows en console
2eme cas > tu te connectes en ssh sur le serveur distant et tu exécutes la commande
Re: mysqldump pour plusieurs tables
Posté : 08 août 2012, 13:52
par francoisch
bonjour
J'utilise un serveur Sql installé chez mon hébergeur.
Comme j'ignore tout de Linux, où trouver qqes infos pour que je puisse me connecter en ssh?
Francois
Re: mysqldump pour plusieurs tables
Posté : 08 août 2012, 16:11
par xTG
C'est un serveur dédié ? Si cela n'en est pas un pas la peine de chercher tu ne trouveras pas.
Si c'est un serveur mutualisé ou virtualisé mais dont tu n'as pas la main il faudra aussi penser à regarder que tu as les droits pour exécuter une commande via system() (souvent tout appel système est désactivé et donc ton script PHP ne ferra rien).
Si c'est bien un serveur sur lequel tu as pleinement la main tu trouveras ton bonheur en chercher sur ton moteur de recherche préféré le terme "SSH". Ce n'est pas les clients qui manquent...
Re: mysqldump pour plusieurs tables
Posté : 09 août 2012, 11:51
par francoisch
bonjour
Mon hébergement est mutualisé.
Par ailleurs, j'utilise régulièrement system("mysqldump .... pour faire une sauvegarde de la base.
Mon problème ici est avec la syntaxe Sql pour sauvegarder uniquement plusieurs tables de cette base.
Francois
Re: mysqldump pour plusieurs tables
Posté : 09 août 2012, 12:59
par xTG
Ce serais pas simplement un souci de direction du dump ?
tables.sql va être créé à l'endroit où la console pointe or ce n'est pas forcement là où se trouve ton script PHP...
Ne se retrouverai-t-il pas dans un dossier auquel tu n'ai pas accès ?
Ou tout simplement la commande n'aboutie pas, vérifies son retour (voir la doc de la fonction system pour ça).
Re: mysqldump pour plusieurs tables
Posté : 09 août 2012, 14:06
par francoisch
Non, j'ai bien un fichier tables.sql mais il est vide en dehors des 7-8 lignes d'en-tête, exactement comme quand une requête ne trouve rien.
Francois
Re: mysqldump pour plusieurs tables
Posté : 09 août 2012, 14:31
par xTG
Essaies sans le --tables, la commande est prévue pour accepter le nom des tables quand elles suivent le nom de la base de données.
Re: mysqldump pour plusieurs tables
Posté : 10 août 2012, 11:25
par francoisch
J'ai essayé sans --tables mais j'ai tjs le même contenu dans le fichier tables.sql:
Code : Tout sélectionner
-- MySQL dump 10.13 Distrib 5.1.61, for debian-linux-gnu (i486)
--
-- Host: xxxxxxxxxxxx Database: xxxxxxxxxxxxxxxxx
-- ------------------------------------------------------
-- Server version 5.1.49-3-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
enregistré sur le site dans le répertoire où se trouve mon code Php.
Les deux tables apparaissent bien dans le SHOW TABLES qui suit.
Merci de ton aide mais le mystère reste entier.
Francois
Re: mysqldump pour plusieurs tables
Posté : 10 août 2012, 13:04
par xTG
Et tu dis que quand tu te connectes avec cet utilisateur les tables sont bien visibles ?
Ce sont des tables et non des vues ?
Je dois bien avouer que là je vois plus trop quoi te conseiller...
Re: mysqldump pour plusieurs tables
Posté : 10 août 2012, 14:00
par francoisch
Oui, les deux tables apparaissent bien, avec d'autres, dans le SHOW TABLES, et ce sont bien des tables.
Je me demande si je n'ai pas une erreur très bête, grosse comme une maison, mais je n'ai encore rien trouvé.
Merci de ton aide, je continue à chercher.
Francois