Gérer ses bases de données
Exporter une base de données
Section intitulée « Exporter une base de données »En cas d'utilisation de phpMyAdmin, il faut exporter un format SQL dans un format compressé, de préférence, dans l'ordre le format bzip2, gzip, zip.
En ligne de commande, voici comment préparer un fichier SQL compressé, remplacez les xxxxx par les bonnes valeurs:
# Répertoire vers lequel sauvegarder la base de donnéesDBPATH=xxxxx/
# Nom de la base de donnéesDBNAME=xxxxx
# Identifiant de connexion à la base de donnéesDBUSER=xxxxx
# Mot de passe de l'identifiantDBPASS=xxxxx
# Serveur de la base de données (mettre localhost à la place de 127.0.0.1 si ça ne marche pas)DBHOST=127.0.0.1
mysqldump --single-transaction --routines --triggers --events --hex-blob -h${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME} | bzip2 -c > ${DBPATH}/mysql_backup_${DBNAME}_`date +%Y%m%d-%H%M%S`.sql.bz2Transférer le fichier obtenu
Section intitulée « Transférer le fichier obtenu »- Le fichier obtenu un nom ressemblant à
mysql_backup_${DBNAME}_`date +%Y%m%d-%H%M%S`.sql.bz2. - Le déposer sur le serveur dans le répertoire virtualmin-backup.
Importer une base de données
Section intitulée « Importer une base de données »Pour importer sans avoir l'exécution de PHP en intermédiaire, il faut utiliser la ligne de commande, soit via une connexion SSH, soit via le terminal intégré à Virtualmin.
Une fois la connexion établie sur le terminal:
# Nom de la nouvelle base de donnéesDBNAME=xxxxx
# Identifiant de connexion à la base de donnéesDBUSER=xxxxx
# Mot de passe de l'identifiantDBPASS=xxxxx
# Serveur de la base de données (mettre localhost à la place de 127.0.0.1 si ça ne marche pas)DBHOST=127.0.0.1
# La base doit être VIDE : supprimer toutes ses tables si besoin (sans toucher à la base)mysql --protocol=TCP -N -h${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME} -e 'SHOW TABLES' | sed 's/.*/DROP TABLE IF EXISTS `&`;/' | mysql --protocol=TCP -h${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME}
# Alternatives possibles selon le format du fichier.# Le sed retire les instructions USE / CREATE DATABASE du dump : sinon il bascule# vers la base d'origine (erreur "Access denied ... to database ...").# Importer un fichier au format sql.bz2bunzip2 -dc db_filename.sql.bz2 | sed -E '/^\s*(USE|CREATE DATABASE)\b/Id' | mysql --protocol=TCP --binary-mode=1 -h${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME}
# Importer un fichier au format sql.gzgunzip -c db_filename.sql.gz | sed -E '/^\s*(USE|CREATE DATABASE)\b/Id' | mysql --protocol=TCP --binary-mode=1 -h${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME}
# Importer un fichier au format sql.zipunzip -p db_filename.sql.zip | sed -E '/^\s*(USE|CREATE DATABASE)\b/Id' | mysql --protocol=TCP --binary-mode=1 -h${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME}Voir aussi
Section intitulée « Voir aussi »- Utiliser Virtualmin, pour accéder à phpMyAdmin et au terminal intégré.
- Virtualmin en ligne de commande, pour l'administration du serveur.
