Utilitário para descarregar um banco de dados ou uma coleção de bancos de dados para backup ou transferencia para outro servidor SQL (Não necessariamente um servidor MySQL). A descarga irá conter instruções SQL para cria a tabela e/ou popular a tabela.
        Se a idéia é backup do servidor, deve ser considerada a
        utilização do mysqlhotcopy. See
        Secção 4.9.8, “mysqlhotcopy, Copiando Bancos de Dados e Tabelas do
        MySQL”.
      
shell> mysqldump [OPÇÕES] banco_de_dados [tabelas]
OR     mysqldump [OPÇÕES] --databases [OPÇÕES] BD1 [BD2 BD3...]
OR     mysqldump [OPÇÕES] --all-databases [OPÇÕES]
        Se você não fornecer nenhuma tabela ou utilizar o
        --databases ou
        --all-databases, todo(s) o(s) banco(s) de dados
        será(ão) descarregado(s).
      
        Você pode obter uma lista das opções que sua versão do
        mysqldump suporta executando
        mysqldump --help.
      
        Perceba que se você executar o mysqldump sem
        a opção --quick ou --opt, o
        mysqldump irá carregar todo o conjunto do
        resultado na memória antes de descarregar o resultado. Isto
        provavelmente será um problema se você está descarregando um
        banco de dados grande.
      
        Note que se você estiver utilizando uma cópia nova do programa
        mysqldump e se você for fazer uma descarga
        que será lida em um servidor MySQL muito antigo, você não
        deve utilizar as opções --opt ou
        -e.
      
        mysqldump suporta as seguintes opções:
      
            --add-locks
          
            Adicione LOCK TABLES antes de
            UNLOCK TABLE depois de cada descarga de
            tabelas. (Para obter inserções mais rápidas no MySQL.)
          
            --add-drop-table
          
            Adicione um drop table antes de cada
            instrução create.
          
            -A, --all-databases
          
            Descarrega todos os bancos de dados. Isto irá ser o mesmo
            que --databases com todos os bancos de
            dados selecionados.
          
            -a, --all
          
Inclui todas as opções do create específicas do MySQL.
            --allow-keywords
          
Permite criação de nomes que colunas que são palavras chaves. Isto funciona utilizando o nome da tabela como prefixo em cada nome de coluna.
            -c, --complete-insert
          
Utilize instruções de insert completas (com nomes de colunas).
            -C, --compress
          
Compacta todas as informações entre o cliente e o servidor se ambos suportarem a compactação.
            -B, --databases
          
            Para descarregar diversos bancos de dados. Perceba a
            diferença no uso. Neste caso nenhuma tabela é fornecida.
            Todos argumentos são estimados como nomes de bancos de
            dados. USE nome_bd; será incluído na
            saída antes de cada banco de dados novo.
          
            --delayed
          
            Insere registros com o comando INSERT
            DELAYED.
          
            -e, --extended-insert
          
            Utiliza a nova sintaxe multilinhas
            INSERT. (Fornece instruções de
            inserção mais compactas e mais rápidas.)
          
            -#, --debug[=option_string]
          
Rastreia a utilização do programa (para depuração).
            --help
          
Exibe uma mensagem de ajuda e sai.
            --fields-terminated-by=...,
            --fields-enclosed-by=...,
            --fields-optionally-enclosed-by=...,
            --fields-escaped-by=...,
            --lines-terminated-by=...
          
            Estas opções são usadas com a opção
            -T e tem o mesmo significado que as
            cláusulas correspondentes em LOAD DATA
            INFILE See Secção 6.4.8, “Sintaxe LOAD DATA INFILE”.
          
            -F, --flush-logs
          
Atualiza o arquivo de log no servidor MySQL antes de iniciar a descarga.
            -f, --force,
          
Continue mesmo se obter um erro de SQL durantes uma descarga de tabela.
            -h, --host=..
          
            Descarrega dados do servidor MySQL na máquina especificada.
            A máquina padrão é localhost.
          
            -l, --lock-tables.
          
            Bloqueia todas as tabelas antes de iniciar a descarga. As
            tabelas são bloqueadas com READ LOCAL
            para permitir inserções concorrentes no caso de tabelas
            MyISAM.
          
            Por favor, note que ao descarregar multiplas tabelas,
            --lock-tables bloqueará as tabelas de cada
            banco de dados separadamente. Assim, usar esta opção não
            garantirá que suas tabelas sejam logicamente consistentes
            entre os banco de dados. Tabela me diferentes bancos de
            dados podem ser descarregadas em estados completamente
            diferentes.
          
            -K, --disable-keys
          
            /*!40000 ALTER TABLE nome_tb DISABLE KEYS
            */; e /*!40000 ALTER TABLE nome_tb ENABLE
            KEYS */; será colocado na saída. Isto fará com
            que a carga de dados no MySQL 4.0 server seja mais rápida
            já que os índices são criados depois que todos os dados
            são inseridos.
          
            -n, --no-create-db
          
            'CREATE DATABASE /*!32312 IF NOT EXISTS*/
            nome_bd;' não será colocado na saída. A linha
            acima será adicionada se a opção
            --databases ou
            --all-databases for fornecida.
          
            -t, --no-create-info
          
            Não grava informações de criação de tabelas (A
            instrução CREATE TABLE.)
          
            -d, --no-data
          
Não grava nenhuma informação de registros para a tabela. Isto é muito útil se você desejar apenas um dump da estrutura da tabela!
            --opt
          
            O mesmo que --quick --add-drop-table --add-locks
            --extended-insert --lock-tables. Fornece a
            descarga mais rápida para leitura em um servidor MySQL.
          
            -pyour_pass, --password[=sua_senha]
          
            A senha para usar quando conectando ao servidor. Se não for
            especificado a parte '=sua_senha', o
            mysqldump irá perguntar por uma senha.
          
            -P port_num, --port=porta_num
          
            O número da porta TCP/IP usado para conectar a uma
            máquina. (Isto é usado para conexões a máquinas
            diferentes de localhost, na qual sockets
            Unix são utilizados.)
          
            -q, --quick
          
            Não utiliza buffers para as consultas, descarrega
            diretamente para saída padrão. Utilize
            mysql_use_result() para fazer isto.
          
            -Q, --quote-names
          
            Coloca os nomes de colunas e tabelas entre
            ‘`’.
          
            -r, --result-file=...
          
Direcione a saída para um determinado arquivo. Esta opção deve ser usada no MSDOS porque previne a conversão de nova linha '\n' para '\n\r' (nova linha + retorno de carro).
            --single-transaction
          
            Esta opção envia um comando SQL BEGIN
            antes de carregar os dados do servidor. Ele é mais útil
            com tabelas InnoDB e nível
            READ_COMMITTED de isolação da
            transação, já que neste modo ela fará um dump do estado
            de consistência do banco de dados no momento que o
            BEGIN for enviado sem bloquear qualquer
            aplicação.
          
            Ao usar esta opção você deve manter em mente que será
            feito um dump no estado consistente apenas das tabelas
            transacionais, ex., qualquer tabela
            MyISAM ou HEAP na qual
            for feito um dump durante está p[ção pode ainda mudar de
            estado.
          
            A opção --single-transaction foi
            adicionada na versão 4.0.2. Esta opção é mutualmente
            exclusiva com a opção --lock-tables já
            que LOCK TABLES já faz um commit da
            transação anterior internamente.
          
            -S /path/to/socket,
            --socket=/path/to/socket
          
            O arquivo socket que será utilizado quando conectar à
            localhost (que é a máquina padrão).
          
            --tables
          
Sobrepõe a opção --databases (-B).
            -T, --tab=path-to-some-directory
          
            Cria um arquivo nome_tabela.sql, que
            contém os comandos SQL CREATE e um arquivo
            nome_tabela.txt, que contém os dados,
            para cada tabela dada. O formato do arquivo
            .txt é feito de acordo com as opções
            --fields-xxx e
            --lines--xxx.
            Nota: Esta opção só
            funciona se mysqldump está sendo
            executado na mesma máquina que o daemon
            mysqld. Você deve usar uma conta MySQL
            que tem o privilégio FILE, e o login de
            usuário/grupo com o qual o mysqld está
            sendo executado (normalmente usuário
            mysql, grupo mysql)
            precisa ter permissão para criar/gravar um arquivo no local
            especificado.
          
            -u user_name, --user=user_name
          
O nome do usuário do MySQL para usar ao conectar ao servidor. O valor padrão é seu nome de usuário no Unix.
            -O nome=valor, --set-variable=nome=valor
          
            Confirgura o valor de uma variável. As variáveis
            possíveis são listadas abaixo. Note que a sintaxe
            --set-variable=nome=valor e -O
            nome=valor está obsoleto desde o MySQL 4.0. Use
            --nome=valor.
          
            -v, --verbose
          
Modo verbose. Exibe mais informações sobre o que o programa realiza.
            -V, --version
          
Exibe informações de versão e sai.
            -w, --where='where-condition'
          
Faz um dump apenas dos registros selecionados. Note que as aspas são obrigatórias:
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
            -X, --xml
          
Faz um dump do banco de dados no formato XML
            -x, --first-slave
          
Faz um lock de todas as tabelas de todos os bancos de dados.
            --master-data
          
            Como --first-slave, mas também exibe algum
            comando CHANGE MASTER TO o qual, mais
            tarde, fará o seu slave iniciar a partir da posição certa
            no log binário do master, se você tiver configurado o seu
            slave usando este dump SQL do master.
          
            -O net_buffer_length=#, where # < 16M
          
            Quando estiver criando instruções de inserções em
            múltiplas linhas (com a opção
            --extended-insert ou
            --opt), mysqldump irá
            criar linhas até o tamanho de
            net_buffer_length. Se você aumentar esta
            variável, você também deve se assegurar que a variável
            max_allowed_packet no servidor MySQL é
            maior que a net_buffer_length.
          
        O uso mais comum do mysqldump é
        provavelmente para fazer backups de bancos de dados inteiros.
        See Secção 4.5.1, “Backups dos Bancos de Dados”.
      
mysqldump --opt banco_dados > arquivo-backup.sql
Você pode ler de volta no MySQL com:
mysql banco_dados < arquivo-backup.sql
ou
mysql -e "source /path-to-backup/backup-file.sql" database
Entretanto, é muito útil também popular outro servidor MySQL com informações de um banco de dados:
mysqldump --opt banco_dados | mysql ---host=máquina-remota -C banco_dados
É possível descarregar vários bancos de dados com um comando:
mysqldump --databases banco_dados1 [banco_dados2 banco_dados3...] > meus_bancosdedados.sql
Se desejar descarregar todos os bancos de dados, pode-se utilizar:
mysqldump --all-databases > todos_bancos_dados.sql
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

