Bonjour tout le monde,
J'essaye depuis 3 bonnes heures de générer un backup de la base de données sans devoir passer par l'interface web d'OVH.
Pour ça, j'ai commencé par la doc officielle fournie par OVH. Sans succès:
Création dun fichier `dump.php` à la racine du dossier `www` contenant ces lignes:
system("mysqldump --host=adresse_du_serveur --user=nom_utilisateur --password=mot_de_passe_utilisateur nom_base_de_données > sauvegarde.sql");
?>
Ce fichier est ensuite appelé depuis le navigateur.
Résultat: Un fichier `sauvegarde.sql` est bien créé, mais **celui-ci reste désespérément vide** (0ko), même en patientant plusieurs minutes.
J'ai donc testé quelques trucs en plus:
- le script est passé en `chmod 777`
- ajout de `--port=3306`
- test également avec `https://` au début du host
**Même résultat,** le fichier `.sql` est mis à jour, mais **il reste vide**.
**Quelques infos supplémentaires:**
- les login et mot de passe ont été testés via phpMyAdmin, et ils fonctionnent.
De même, une installation de Wordpress utilise ces même credentials. J'ai repris les données dans le fichier `wp-config.php` de Wordpress.
- il n'y a pas de caractères spéciaux dans les login/mdp
**Configuration:**
- Global PHP version 7.2
- Datacentre "gra3"
- L'offre d'hébergement ne permet pas l'usage du SSH (Contrat "Perso 2014")
Notez que j'ai déjà fait les même tests il y a trois semaines environ, même échecs à l'époque.
Avez-vous une piste ?
**EDIT:**
Une modification du script permet d'avoir (un peu) plus d'info:
$output = ];
system("mysqldump --host=vanessd875.mysql.db --user=vanessd --password=XXX vanessd875 > ovh.sql",$output);
var_dump($output);
?>
Affiche `int(2) ` dans le navigateur. Pour moi ça reste incompréhensible mais peut-être que ça peu aider à comprendre le problème.
**EDIT 2:**
J'ai testé une version adaptée [de ce Gist:
```
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$database = 'vanessd875';
$user = 'vanessd';
$pass = 'XXXXX';
$host = 'vanessd875.mysql.db';
$dir = dirname(__FILE__) . '/dump.sql';
echo "
Backing up database to `{$dir}
`
";exec("mysqldump --user={$user} --password={$pass} --host={$host} {$database} --result-file={$dir} 2>&1", $output);
var_dump($output);
?>
```
La réponse laisse à penser qu'il y a un problème de permissions:
```
Backing up database to `/home/vanessd/www/dump.sql`
array(1) { [0]=> string(120) "mysqldump: Got error: 1045: Access denied for user 'vanessd'@'10.30.20.102' (using password: YES) when trying to connect" }
```
Cordialement, Vaness
Bonjour @VanessaB5
Voir ma doc --> **https://www.wordetweb.com/word-et-web/OVH-Sauvegarder-Restaurer-une-base-de-donnees-via-un-script-FR.htm OVH - Sauvegardes et Restaurations de Bases de Données via un script**
Bonjour @Gaston_Phone, et merci pour cette réponse rapide !
J'ai lancé ton script sur mon serveur, un fichier `sauve_base_format_gzip.gz` est bien créé mais celui-ci pèse 20 _bytes_ et lorsque j'essaye de l'extraire je reçois un message d'erreur "empty archive"..
Voici ce que m'affiche le navigateur :
> Sauvegarde de la base vanessd875 par mysqldump dans le fichier sauve_base_format_gzip.gz
Sauvegarde effectuée dans sauve_base_format_gzip.gz de taille 20 Ko
Fin de la Sauvegarde GZIP de la totalité de la base vanessd875 (depuis le serveur SQL vanessd875.mysql.db)
Toujours dans le but de récolter des infos, j'ai lancé ce petit script:
tourner
Réponse obtenue dans le navigateur :
mysqldump: /usr/share/man/man1/mysqldump.1.gz
Question :
Est-ce normal que se soit uniquement le chemin vers la page de man qui s'affiche, sans référence à un executable ? (désolé je débute 😓)
EDIT: En local j'ai cette réponse :
mysqldump: /usr/bin/mysqldump /usr/share/man/man1/mysqldump.1.gz
J'ai lancé https://wordetweb.com/word-et-web/OVH-Tester-une-base-de-donnees-avec-un-script-mysqli-FR.htm le script de test réalisé par @Gaston_Phone , même problème de permissions:
> Opérations sur une Base de Données MySQL via les commandes mysqli
Version de PHP : 7.2.34
Travaux dans la base 'vanessd875' sur le serveur 'vanessd875.mysql.db'
Connexion à MySQL - Erreur=(1045)Access denied for user 'vanessd'@'10.30.20.149' (using password: YES)
(le problème de formatage des accents apparait également dans le navigateur)
Bonjour @VanessaB5
Les identifiants ne sont pas corrects.
Es-tu sûre que ton mot de passe est correct ?
Absolument certaine: je les ai plusieurs fois copié-collés dans le formulaire de login de phpMyAdmin.
Je suis même allée regarder https://www.ovh.com/fr/hebergement-web/hebergement-perso.xml les détails de l'offre que j'ai souscrite (Perso 2014), dans le doute. Rien ne dit que je n'ai pas le droit de faire une telle connexion..
Je désespère un peu là.. Je n'arrive pas à me mettre à créer du contenu sans savoir que des sauvegardes sont possibles, et de manière scriptable.
Merci @Gaston_Phone pour ton soutien !
Ton mot de passe n'est pas le bon.
Regarde dans /www/wp-config.php
Bien vu Gaston, c'était bien ça, j'ai confondu le nom d'user _de la base de données_ avec celui du login de Wordpress.
Un grand grand Merci @Gaston_Phone , sans toi j'en serai encore à me taper la tête sur les murs !
J'aimerai marquer ce topic comme Résolu, j'édite le titre ? ou il y a un raccourci que je n'ai pas trouvé ?
Bonjour @VanessaB5
Et pour tous tes autres problèmes avec WordPress :
Voir mon guide --> **https://www.wordetweb.com/word-et-web/WORDPRESS-guide-installation-de-WordPress-premier-domaine-chez-OVH-FR.htm CMS - WordPress - Guide d’installation chez OVH**