\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{sam. mai 8 23:34:00 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={mysqldump},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Utilitaire de sauvegarde des structures de tables de données},
CreationDate={D:20100508233400},
ModDate={D:20100508233400},
Keywords={mysql;db;databases}
}}
\begin{document}
 
\begin{center}
{\Huge mysqldump }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Utilitaire de sauvegarde des structures de tables de données}
 
\vspace{10mm}
 
\begin{description} \normalsize
\item[\hspace{1mm} ]{Plusieurs méthodes}
\item[\hspace{1mm} shell> mysqldump \texttt{[}options\texttt{]} db\_name \texttt{[}tables\texttt{]}]{}
\item[\hspace{1mm} shell> mysqldump \texttt{[}options\texttt{]} --databases DB1 \texttt{[}DB2 DB3...\texttt{]}]{}
\item[\hspace{1mm} shell> mysqldump \texttt{[}options\texttt{]} --all-databases]{}
\end{description}
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} --help, -?]{Affiche le message d'aide et quitte.}
\item[\hspace{1mm} --add-drop-table]{Ajoute une commande drop table avant chaque requête de création de table.}
\item[\hspace{1mm} --add-locks]{Ajoute une commande \textbf{LOCK TABLES} avant l'export de table et une commande \textbf{UNLOCK TABLE} après (Pour accélérer les insertions dans MySQL).}
\item[\hspace{1mm} --all-databases, -A]{Exporte toutes les tables. C'est l'équivalent de l'option \textbf{--databases} avec toutes les bases de données sélectionnées.}
\item[\hspace{1mm} --allow-keywords]{Permet la création de colonnes ayant des noms de mots réservés. Cela fonctionne en préfixant chaque nom de colonne avec le nom de la table.}
\item[\hspace{1mm} --comments\texttt{[}=0|1\texttt{]}]{Si cette option prend 0, elle supprime les informations additionnelles (comme les versions de programme, les versions d'hôte) dans les exports. L'option \textbf{--skip-comments} fait la même chose. Par défaut, la valeur de cette option est 1, pour conserver ces informations.}
\item[\hspace{1mm} --compatible=name]{Produit un résultat qui est compatible avec les autres bases de données, ou avec d'anciennes versions de MySQL. Les valeurs possibles de \textbf{name} sont \textbf{mysql323}, \textbf{mysql40}, \textbf{postgresql}, \textbf{oracle}, \textbf{mssql}, \textbf{db2}, \textbf{sapdb}, \textbf{no\_key\_options}, \textbf{no\_table\_options}, ou \textbf{no\_field\_options}. Pour utiliser plusieurs valeurs, séparez les par des virgules. Ces valeurs ont la même signification que les options correspondantes de configuration du mode SQL.}
\item[\hspace{1mm} --complete-insert, -c]{Utilise des commandes \textbf{INSERT} complètes, avec les noms de colonnes.}
\item[\hspace{1mm} -C, --compress]{Compresse toutes les informations entre le client et le serveur, les deux supporte la compression.}
\item[\hspace{1mm} --create-options]{Inclut toutes les options spécifiques MySQL de création de table dans les commandes \textbf{CREATE TABLE}.}
\item[\hspace{1mm} --databases, -B]{Pour exporter plusieurs bases de données. Notez la différence d'utilisation. Dans ce cas, aucune table n'est spécifié. Tous les arguments de noms sont considérés comme des noms de base. Une ligne \textbf{USE db\_name;} sera ajoutée dans l'export avant chaque base de données.}
\item[\hspace{1mm} --debug\texttt{[}=debug\_options\texttt{]}, -\# \texttt{[}debug\_options\texttt{]}]{Active l'historique de débogage. La chaîne de format est généralement \textbf{'d:t:o,file\_name'}.}
\item[\hspace{1mm} --default-character-set=charset]{Configure le jeu de caractères par défaut pour l'export. S'il n'est pas spécifié, mysqldump 10.3 ou plus récent va utiliser utf8. Les versions plus anciennes utiliseront latin1.}
\item[\hspace{1mm} --delayed]{Les insertions se font avec la commande \textbf{INSERT DELAYED}.}
\item[\hspace{1mm} --delete-master-logs]{Sur un maître de réplication, efface le log binaire une fois que l'opération d'export est faite. Cette option active automatiquement \textbf{--first-slave}.}
\item[\hspace{1mm} --disable-keys, -K]{Pour chaque table, entoure les commandes d'\textbf{INSERT} avec les commandes \textbf{/* !40000 ALTER TABLE tbl\_name DISABLE KEYS */;} et \textbf{/* !40000 ALTER TABLE tbl\_name ENABLE KEYS */;}. Cette option n'est effective que pour les tables MyISAM.}
\item[\hspace{1mm} --extended-insert, -e]{Utilise la nouvelle syntaxe multi-ligne \textbf{INSERT}. (Cela donne des insertions plus courtes et plus efficaces).}
\item[\hspace{1mm} --fields-terminated-by=..., --fields-enclosed-by=..., --fields-optionally-enclosed-by=..., --fields-escaped-by=..., --lines-terminated-by=...]{Ces options sont utilisées avec l'option \textbf{-T} et ont la même signification que les clauses correspondantes de la commande \textbf{LOAD DATA INFILE}.}
\item[\hspace{1mm} --first-slave, -x]{Verrouille toutes les tables de toutes les bases de données.}
\item[\hspace{1mm} --flush-logs, -F]{Écrit tout le fichier de log du serveur avant de commencer l'export. Notez que si vous utilisez cette option avec \textbf{--all-databases} (ou l'option -A), les logs seront vidés pour chaque base de données exportée.}
\item[\hspace{1mm} -f, --force]{Continue même si une erreur SQL survient durant l'export.}
\item[\hspace{1mm} --host=host\_name, -h host\_name]{Exporte les données depuis le serveur MySQL vers l'hôte indiqué. L'hôte par défaut est localhost.}
\item[\hspace{1mm} --lock-tables, -l]{Verrouille toutes les tables avant de commencer l'export. Les tables sont verrouillées avec \textbf{READ LOCAL} pour permettre des insertions concurrentes sur les tables \textbf{MyISAM}. Notez que lorsque vous exportez des tables de bases différentes, l'option \textbf{--lock-tables} va verrouiller chaque base séparément. Cette option ne vous garantira pas que vos tables seront logiquement cohérente entre les bases. Des tables de différentes bases pourraient être exportées dans des états très différents.}
\item[\hspace{1mm} --master-data]{Cette option est similaire à \textbf{--first-slave}, mais produit aussi une commande \textbf{CHANGE MASTER TO} qui fait que le serveur esclave va commencer à la bonne position dans le log du maître, si vous utilisez cette exportation pour configurer initialement l'esclave.}
\item[\hspace{1mm} --no-create-db, -n CREATE DATABASE]{la ligne \textbf{/* !32312 IF NOT EXISTS*/ db\_name;} ne sera pas ajouté dans l'export. Sinon, la ligne ci-dessus sera ajoutée, si l'une des options \textbf{--databases} ou \textbf{--all-databases} a été activée.}
\item[\hspace{1mm} --no-create-info, -t]{N'écrit pas les informations de création de table (la requête \textbf{CREATE TABLE}).}
\item[\hspace{1mm} --no-data, -d]{N'écrit aucune ligne d'informations sur la table. C'est très pratique si vous voulez simplement exporter la structure de la table.}
\item[\hspace{1mm} --opt]{Identique à \textbf{--quick --add-drop-table --add-locks --extended-insert --lock-tables}. Vous obtiendrez l'export le plus rapide à importer dans un serveur MySQL.}
\item[\hspace{1mm} --password\texttt{[}=password\texttt{]}, -p\texttt{[}password\texttt{]}]{Le mot de passe à utiliser lors de la connexion au serveur.}
\item[\hspace{1mm} --port=port\_num, -P port\_num]{Le port TCP/IP à utiliser avec l'hôte.}
\item[\hspace{1mm} --protocol=TCP | SOCKET | PIPE | MEMORY]{Pour spécifier le protocole de connexion à utiliser.}
\item[\hspace{1mm} --quick, -q]{Ne garde pas en buffer les requêtes, mais écrit immédiatement dans la sortie.}
\item[\hspace{1mm} --quote-names, -Q]{Protège les noms des tables et colonnes avec le caractère \textbf{‘`’}.}
\item[\hspace{1mm} --result-file=file, -r file]{Écrit directement dans le fichier indiqué. Cette option doit être utilisé sur MSDOS, car cela évite que la nouvelle ligne \textbf{‘\textbackslash{}n’} soient converties en \textbf{‘\textbackslash{}n\textbackslash{}r’} (nouvelle ligne et retour chariot).}
\item[\hspace{1mm} --single-transaction]{Cette option ajoute la commande \textbf{SQL BEGIN} avant d'exporter les données vers le serveur. C'est généralement pratique pour les tables InnoDB et le niveau d'isolation de transaction \textbf{READ\_COMMITTED}, car ce mode va exporter l'état de la base au moment de la commande \textbf{BEGIN} sans bloquer les autres applications. Lorsque vous utilisez cette option, pensez bien que seules les tables transactionnelles seront exportées dans un état cohérent, c'est à dire que les tables MyISAM ou HEAP qui seront exportées avec cette option, pourront changer d'état. Cette option est mutuellement exclusive avec l'option \textbf{--lock-tables} car \textbf{LOCK TABLES} va valider une transaction interne précédente.}
\item[\hspace{1mm} --socket=path, -S path]{Le fichier de socket à utiliser pour les connexions locale (à localhost), qui est l'hôte par défaut.}
\item[\hspace{1mm} --skip-comments]{Identique à \textbf{--comments = 0}.}
\item[\hspace{1mm} --tab=path, -T path]{Crée un fichier \textbf{table\_name.sql}, qui contient les commandes \textbf{SQL CREATE}, et un fichier \textbf{table\_name.txt}, qui contient les données, pour chaque table. Le format du fichier .txt est celui qui est spécifié par les options \textbf{--fields-xxx} et \textbf{--lines--xxx}. Note : cette option ne fonctionne qui si mysqldump est exécuté sur la même machine que le démon mysqld, et que le nom d'utilisateur et le groupe de mysqld (normalement l'utilisateur mysql, et le groupe mysql) doivent avoir des permission pour créer et écrire un fichier dans le dossier que vous spécifiez.}
\item[\hspace{1mm} --tables]{Remplace l'option \textbf{--databases} ou \textbf{-B}. Tous les arguments suivant les options sont considérés comme des noms de tables.}
\item[\hspace{1mm} --user=user\_name, -u user\_name]{Le nom d'utilisateur MySQL lors de la connexion à un serveur distant.}
\item[\hspace{1mm} --verbose, -v]{Mode détaillé. Affiche plus d'informations sur les faits et gestes du programme.}
\item[\hspace{1mm} --version, -V]{Affiche la version du programme et quitte.}
\item[\hspace{1mm} --where='where-condition', -w 'where-condition']{Exporte uniquement les lignes sélectionnées. Notez que les guillemets sont obligatoires. Exemples : \textbf{"--where=user='jimf'" "-wuserid>1" "-wuserid<1"}}
\item[\hspace{1mm} -X, --xml]{Exporte la base au format XML}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} L'usage normal de mysqldump est probablement de faire des sauvegardes de bases \\
\hspace{1mm} \textbf{mysqldump --opt database > backup-file.sql} \\
\hspace{1mm} Vous pouvez importer les données dans la base MySQL avec \\
\hspace{1mm} \textbf{mysql database < backup-file.sql} \\
\hspace{1mm} ou \\
\hspace{1mm} \textbf{mysql -e "source /patch-to-backup/backup-file.sql" database} \\
\hspace{1mm} Cependant, il est très pratique pour remplir un autre serveur MySQL avec des informations depuis une base \\
\hspace{1mm} \textbf{mysqldump --opt database | mysql ---host=remote-host -C database} \\
\hspace{1mm} Il est possible d'exporter plusieurs bases de données en une seule commande \\
\hspace{1mm} \textbf{mysqldump --databases database1 [database2 ...] > my\_databases.sql} \\
\hspace{1mm} Si vous souhaitez exporter toutes les bases, vous pouvez utiliser \\
\hspace{1mm} \textbf{mysqldump --all-databases > all\_databases.sql} \\
\end{flushleft}
\end{document}
