Bonjour à tous,
J'utilise un script que j'ai récupérer sur le net afin de proceder aux sauvegardes de mes bases de données.
Toutefois, en voulant tester une sauvegarde, j'importe celle ci dans ma base de donnée, tout passe bien jusqu'a que ça me dit que le déroulement a été effectué avec succès. Je clique sur la base de donnée en question et j'ai aucune table qui s'affiche.Pour info, il faut créer un utilisateur dédié à la sauvegarde. Pour cela, j'ai fait :
Puis :
CREATE USER 'backup'@'localhost' IDENTIFIED BY '';
et
GRANT SHOW DATABASES, SELECT, LOCK TABLES, RELOAD ON *.* to 'backup'@'localhost' ;
et
GRANT EVENT ON *.* to 'backup'@'localhost' with grant option;
et
grant show view on *.* to 'backup'@'localhost';
et pour finir :Je modifie ensuite le mot de passe de mon nouvel user backup :
UPDATE mysql.user SET password=PASSWORD("nouveau_mdp") where User="backup";
Dossier contenant les sauvegardes et droits sont correct. Je comprends pas car si je fais un export puis un import via phpmyadmin, ça marche sans souci.
Quelqu'un aurait une idée ?
Merci à vous tous pour votre aide
Voici le script :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #!/bin/bash
# Configuration de base: datestamp e.g. DDMMYYYY
DATE=$(date +"Sauv_du_%d_%m_%Y")
# Dossier où sauvegarder les backups (créez le d'abord!)
BACKUP_DIR="/home/users/save_BD"
# Identifiants MySQL
MYSQL_USER="backup"
MYSQL_PASSWORD="PASSWORD_OF_USER_backup"
# Commandes MySQL (aucune raison de modifier ceci)
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
# Bases de données MySQL à ignorer
SKIPDATABASES="Database|information_schema|performance_schema|mysql|phpmyadmin"
# Nombre de jours à garder les dossiers (seront effacés après X jours)
RETENTION=14
# ---- NE RIEN MODIFIER SOUS CETTE LIGNE ------------------------------------------
#
# Create a new directory into backup directory location for this date
mkdir -p $BACKUP_DIR/$DATE
# Retrieve a list of all databases
databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"`
# Dumb the databases in seperate names and gzip the .sql file
for db in $databases; do
echo $db
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz"
done
# Remove files older than X days
find $BACKUP_DIR/* -mtime +$RETENTION -delete |
Edit :
Je fini par quelques informations complémentaires
Serveur de prod :
Serveur de base de données
Serveur : Localhost via UNIX socket
Type de serveur : MySQL
Version du serveur : 5.5.55-0+deb8u1 - (Debian)
Version du protocole : 10
Utilisateur : root@localhost
Jeu de caractères du serveur : UTF-8 Unicode (utf8)
Serveur web
Apache
Version du client de base de données : libmysql - 5.5.55
Extension PHP : mysqli Documentation
phpMyAdmin
Version : 4.2.12deb2+deb8u2
Serveur de TEST:
Serveur de base de données
Serveur : Localhost via UNIX socket
Type de serveur : MariaDB
Version du serveur : 10.1.23-MariaDB-9+deb9u1 - Debian 9.0
Version du protocole : 10
Utilisateur : root@localhost
Jeu de caractères du serveur : UTF-8 Unicode (utf8)
Serveur web
Apache
Version du client de base de données : libmysql - mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
Extension PHP : mysqliDocumentation curlDocumentation mbstringDocumentation
Version de PHP : 5.6.31-1+0~20170711121556.3+stretch~1.gbp94bb71
phpMyAdmin
Version : 4.6.6deb4
Partager