O mysql é uma shell SQL simples (com
        capacidades GNU readline). Ele suporta usos
        interativos e não interativos. Quando usado interativamente, os
        resultados das consultas são apresentadas no formato de tabela
        ASCII. Quando não usado interativamente (como um filtro por
        exemplo), o resultado é apresentado em um formato separado por
        tabulações. (O formato de saída pode ser alterado utilizando
        opções da linha de comando.) Você pode executar scripts desta
        forma:
      
shell> mysql database < script.sql > saida.tab
        Se você tiver problemas devido a memória insuficiente no
        cliente, utilize a opção --quick! Isto força
        o mysql a utilizar
        mysql_use_result() no lugar de
        mysql_store_result() para recuperar o
        conjunto de resultados.
      
        Utilizar o mysql é muito fáci. Inicie-o
        como mostrado a seguir:  mysql banco_de_dados
        ou mysql --user=nome_usuário --password=sua_senha
        banco_de_dados. Digite uma instrução SQL, termine-a
        com ‘;’, '\g',
        ou '\G' e pressione RETURN/ENTER.
      
        O mysql Suporta as seguintes opções:
      
            -?, --help
          
Exibe esta ajuda e sai.
            -A, --no-auto-rehash
          
            Sem reprocessamento automático. O 'rehash' deve ser usado
            se o usuário desejar que o cliente mysql
            complete as tabelas e campos. Esta opção é usada para
            acelerar a inicialização do cliente.
          
            --prompt=...
          
Configura o prompt do mysql com o formato especificado.
            -b, --no-beep
          
Deliga o beep nos erros.
            -B, --batch
          
Exibe resultados com o caractere de tabulação como o separador, cada registro em uma nova linha. Não utiliza o arquivo de histórico.
            --character-sets-dir=...
          
Diretório onde os conjuntos de caracteres estão localizados.
            -C, --compress
          
Utiliza compactação no protocolo cliente/servidor.
            -#, --debug[=...]
          
Log de Depuração. O padrão é 'd:t:o,/tmp/mysql.trace'.
            -D, --database=...
          
            Qual banco de dados usar. Isto geralmente é util em um
            arquivo my.cnf.
          
            --default-character-set=...
          
Configura o conjunto de caracters padrão.
            -e, --execute=...
          
Executa o comando e sai. (Saída parecida com --batch)
            -E, --vertical
          
            Exibe a saída de uma consulta (linhas) verticalmente. Sem
            esta opção você também pode forçar esta saída
            terminando suas instruções com \G.
          
            -f, --force
          
Continue mesmo se for obtido um erro SQL.
            -g, --no-named-commands
          
Comandos nomeados serão desabilitados. Utilize somente a forma \*, ou use comandos nomeados apenas no começo da linha terminada com um ponto-e-vírgula (;). Desde a versão 10.9, o cliente agora inicia com esta opção habilitada por padrão! Com a opção -g, entretando, comandos de formato longo continuarão funcionando na primeira linha.
            -G, --enable-named-commands
          
Comandos nomeados são habilitados. Comandos de formato longo são aceitos assim como os comandos reduzidos \*.
            -i, --ignore-space
          
Ignore caractere de espaço depois de nomes de funções.
            -h, --host=...
          
Conectar à máquina especificada.
            -H, --html
          
Produz saída HTML.
            -X, --xml
          
Produz saída XML.
            -L, --skip-line-numbers
          
Não escreve o número da linha para os erros. Útil quando se deseja comparar arquivos com resultados que incluem mensagens de erro.
            --no-pager
          
Desabilita paginação e impressão na saída padrão. Veja também a ajuda interativa (\h).
            --no-tee
          
Desabilita arquivo de saída. Veja também a ajuda interativa (\h).
            -n, --unbuffered
          
Descarrega e atualiza o buffer depois de cada pesquisa.
            -N, --skip-column-names
          
Não escrever nomes de colunas nos resultados.
            -O, --set-variable nome=opção
          
            Fornece um valor a uma variável. --help
            lista as variáveis. Por favor, note que as sintaxes
            --set-variable=name=value e -O
            name=value estão obsoletas desde o MySQL 4.0, use
            --nome=valor.
          
            -o, --one-database
          
Atualiza somente o banco de dados padrão. Isto é útil para evitar atualização em outros bancos de dados no log de atualizações.
            --pager[=...]
          
            Tipo de saída. O padrão é sua variável de ambiente
            PAGER. Paginadores válidos são: less,
            more, cat [>nome_arquivo], etc. Veja também a ajuda
            interativa (\h). Esta opção não funciona no modo batch. A
            opção pager funciona somente no UNIX.
          
            -p[password], --password[=...]
          
            Senha a ser usada ao conectar ao servidor. Se uma senha não
            é fornecida na linha de comando, lhe será solicitado uma.
            Perceba que se você utilizar o formato curto
            -p você não pode ter um espaço entre a
            opção e a senha.
          
            -P --port=...
          
Número da porta TCP/IP para usar na conexão.
            --protocol=(TCP | SOCKET | PIPE | MEMORY)
          
Especifica o protocolo de conexão usado. Novo no MySQL 4.1.
            -q, --quick
          
Não faz cache do resultado, imprime linha a linha. Isto pode deixar o servidor mais lento se a saída for suspendida. Não usa arquivo de histórico.
            -r, --raw
          
            Exibe valores de colunas sem conversão de escapes.
            Utilizado com --batch
          
            --reconnect
          
Se a conexão é perdida, tentar reconectar ao servidor automaticamente (mas apenas uma vez).
            -s, --silent
          
Opção para ser mais silencioso.
            -S --socket=...
          
Arquivo socket para ser utilizado na conexão.
            -t --table
          
Saída no formato de tabela. Isto é padrão no modo não-batch.
            -T, --debug-info
          
Exibe alguma informação de depuração na saída.
            --tee=...
          
Anexa tudo no arquivo de saída. Veja também a ajuda interativa (\h). Não funciona no modo batch.
            -u, --user=#
          
Usuário para login diferente do usuário atual do sistema.
            -U, --safe-updates[=#],
            --i-am-a-dummy[=#]
          
            Permite somente que UPDATE e
            DELETE utilizem chaves. Veja abaixo para
            maiores informações sobre esta opção. Você pode zerar
            esta opção se possui-la no arquivo
            my.cnf utilizando
            --safe-updates=0.
          
            -v, --verbose
          
Modo verbose (-v -v -v fornece o formato de saída da tabela).
            -V, --version
          
Gera saída com informação de versão e sai.
            -w, --wait
          
Espera e repete em vez de sair se a conexão estiver inacessível.
        Você também pode configurar as seguntes variáveis com
        -O ou --set-variable. Por
        favor, note que as sintaxes
        --set-variable=nome=valor e -O
        name=value estão obsoletas desde o MySQL 4.0, use
        --var=option:
      
| Nome Variável | Padrão | Descrição | 
| connect_timeout | 0 | Número de seguntos antes de esgotar o tempo da conexão | 
| local-infile | 0 | Disabilita (0) ou habilita (1) capacidade LOCALparaLOAD DATA INFILE | 
| max_allowed_packet | 16777216 | Tamanho máximo do pacote para enviar/receber do servidor | 
| net_buffer_length | 16384 | Tamanho do buffer para comunicação TCP/IP e socket | 
| select_limit | 1000 | Limite automático para SELECTquando utilizar--safe-updtaes | 
| max_join_size | 1000000 | Limite automático para registros em uma join quando utilizar --safe-updtaes. | 
        Se o cliente mysql perder a conexào com o
        servidor enquanto envia uma consulta, ele tentará se reconectar
        imediatamente e automaticamente uma vez e enviar a consulta
        novamente. Note que mesmo se ele obter sucesso na reconexão,
        como sua primeira conexão foi finalizada, todas seus objetos da
        sessão anteriores foram perdidos: tabelas temporárias, e
        variáveis de sessão e de usuário. Desta forma, o
        comportamento acima pode ser perigoso para você, como neste
        exemplo onde o servidor foi desligado e reiniciado sem você
        saber:
      
mysql>set @a=1;Query OK, 0 rows affected (0.05 sec) mysql>insert into t values(@a);ERROR 2006: MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test Query OK, 1 row affected (1.30 sec) mysql>select * from t;+------+ | a | +------+ | NULL | +------+ 1 row in set (0.05 sec)
        A variável de usuário @a foi perdida com a
        conexão e depois da reconexão ela é indefinida. Para se
        proteger deste risco, você pode iniciar o cliente
        mysql com a opção
        --disable-reconnect.
      
        Se você digitar 'help' na linha de comando,
        mysql irá exibir os comandos que ele
        suporta:
      
mysql> help
MySQL commands:
help      (\h)    Display this text.
?         (\h)    Synonym for `help'.
clear     (\c)    Clear command.
connect   (\r)    Reconnect to the server.
                  Optional arguments are db and host.
delimiter (\d)    Set query delimiter.
edit      (\e)    Edit command with $EDITOR.
ego       (\G)    Send command to mysql server,
            display result vertically.
exit      (\q)    Exit mysql. Same as quit.
go        (\g)    Send command to mysql server.
nopager   (\n)    Disable pager, print to stdout.
notee     (\t)    Don't write into outfile.
pager     (\P)    Set PAGER [to_pager].
            Print the query results via PAGER.
print     (\p)    Print current command.
prompt    (\R)    Change your mysql prompt.
quit      (\q)    Quit mysql.
rehash    (\#)    Rebuild completion hash.
source    (\.)    Execute an SQL script file.
      Takes a file name as an argument.
status    (\s)    Get status information from the server.
system    (\!)    Execute a system shell command.
tee       (\T)    Set outfile [to_outfile].
      Append everything into given outfile.
use       (\u)    Use another database.
          Takes database name as argument.
        Os comandos edit, nopager,
        pager, e system funcionam
        apenas no Unix.
      
        O comando status lhe fornece algumas
        informações sobre a conexão e o servidor que está
        utilizando. Se você estiver executando no modo
        --safe-updates, status irá
        também imprimir os valores para as variáveis
        mysql que afetam suas consultas.
      
        Uma opção útil para iniciantes (introduzido no MySQL versão
        3.23.11) é o --safe-updates (ou
        --i-am-a-dummy para usuários que uma vez
        possam ter feito um DELETE FROM nome_tabela
        mas esqueceram da cláusula WHERE). Quando
        utilizar esta opção, o mysql envia o
        seguinte comando ao servidor MySQL quando abrir a conexão.
      
SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=#select_limit#,
    SQL_MAX_JOIN_SIZE=#max_join_size#"
        onde #select_limit# e #max_join
        size# são variáveis que podem ser configuradas da
        linha de comando mysql. See
        Secção 5.5.6, “Sintaxe de SET”.
      
O efeito da opção acima é:
            Você não tem permissão de utilizar uma instrução
            UPDATE ou DELETE se
            você não possuir uma chave na parte
            WHERE. Pode-se, entretanto, forçar um
            UPDATE/DELETE utilizando
            LIMIT:
UPDATE nome_tabela SET campo_nao_chave=# WHERE campo_nao_chave=# LIMIT 1;
            Todos resultados maiores são limitados automaticamente a
            #select_limit# linhas.
          
            SELECT's que provavelmente precisarão
            examinar mais que #max_join_size
            combinaçoes de linhas serão abortadas.
          
        Algumas dicas úteis sobre o cliente mysql:
      
Alguns dados são muito mais legíveis quando exibido verticalmente, em vez da saída do tipo caixa horizontal comum. Por exemplo: Textos longos, que incluem várias linhas, são muito mais fáceis de serem lidos com saída vertical.
mysql> SELECT * FROM mails WHERE LENGTH(txt) < 300 lIMIT 300,1\G
*************************** 1. row ***************************
  msg_nro: 3068
     date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Monty
    reply: monty@no.spam.com
  mail_to: "Thimble Smith" <tim@no.spam.com>
      sbj: UTF-8
      txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi.  I think this is a good idea.  Is anyone familiar with UTF-8
Thimble> or Unicode? Otherwise, I'll put this on my TODO list and see what
Thimble> happens.
Yes, please do that.
Regards,
Monty
     file: inbox-jani-1
     hash: 190402944
1 row in set (0.09 sec)
        Para o log, você pode utilizar a opção
        tee. O tee pode ser
        iniciado com a opção --tee=..., ou pela linha
        de comando de maneira interativa com o comando
        tee. Todos os dados exibidos na tela serão
        anexados no arquivo fornecido. Isto também pode ser muito útil
        para propósitos de depuração. O tee pode
        ser desabilitado da linha de comando com o comando
        notee. Executando tee
        novamente o log é reiniciado. Sem um parâmetro o arquivo
        anterior será usado. Perceba que tee irá
        atualizar os resultados dentro do arquivo depois de cada
        comando, pouco antes da linha de comando reaparecer esperando
        pelo próximo comando.
      
        Navegar ou pesquisar os resultados no modo interativo em algum
        programa do UNIX como o less, more ou outro similar, é agora
        possível com a opção --pager[=...]. Sem
        argumento, o cliente mysql irá procurar pela
        variável de ambiente PAGER e configurar
        pager para este valor.
        pager pode ser iniciado a partir da linha de
        comando interativa com o comando pager e
        desabilitado com o comando nopager. O comando
        recebe um argumento opcional e e o pager
        será configurado com ele. O comando pager
        pode ser chamado com um argumento, mas isto requer que a opção
        --pager seja usada, ou o
        pager será usado com a saída padrão.
        pager funciona somente no UNIX, uma vez que
        é utilizado a função popen(), que não
        existe no Windows. No Windows a opção tee
        pode ser utilizada, entretanto ela pode não ser cômoda como
        pager pode ser em algumas situações.
      
        Algumas dicas sobre pager:
      
Você pode usá-lo para gravar em um arquivo:
mysql> pager cat > /tmp/log.txt
            e os resultados irão somente para um arquivo. Você também
            pode passar qualquer opções para os programas que você
            deseja utilizar com pager:
mysql> pager less -n -i -S
            Note a opção -S exibida acima. Você
            pode achá-la muito útil quando navegar pelos resultados;
            experimente com a opção com saída a horizontal (finalize
            os comandos com \g, ou
            ;) e com saída vertical (final dos
            comandos com \G). Algumas vezes um
            resultado com um conjunto muito largo é difícil ser lido
            na tela, com a opção -S para
            less, você pode navegar nos resultados
            com o less interativo da esquerda para a
            direita, evitando que linhas maiores que sua tela continuem
            na próxima linha. Isto pode tornar o conjunto do resultado
            muito mais legível. você pode alterar o modo entre ligado
            e desligado com o less interativo com
            -S. Veja o 'h'(help) para mais ajuda
            sobre o less.
          
Você pode combinar maneiras muito complexas para lidar com os resultados, por exemplo, o seguinte enviaria os resultados para dois arquivos em dois diferentes diretórios, em dois discos diferentes montados em /dr1 e /dr2, e ainda exibe o resultado na tela via less:
mysql>pager cat | tee /dr1/tmp/res.txt | \tee /dr2/tmp/res2.txt | less -n -i -S
        Você também pode combinar as duas funções acima; tenha o
        tee habilitado, o pager
        configurado para 'less' e você estará apto a navegar nos
        resultados no less do Unix e ainda ter tudo anexado em um
        arquivo ao mesmo tempo. A diferença entre UNIX
        tee usado com o pager e o
        tee embutido no cliente
        mysql é que o tee
        embutido funciona mesmo se você não tiver o comando
        UNIX tee disponível. O
        tee embutido também loga tudo que é exibido
        na tela, e o UNIX tee usado com
        pager não loga completamente. Por último o
        tee interativo é mais cômodo para trocar
        entre os modos on e off, quando você desejar logar alguma coisa
        em um arquivo, mas deseja estar apto para desligar o recurso
        quando necessário.
      
        A partir da versão 4.0.2 é possível alterar o prompt no
        cliente de linha de comando mysql.
      
Você pode usar as seguintes opções do prompt:
| Opção | Descrição | 
| \v | versão mysqld | 
| \d | banco de dados em uso | 
| \h | máquina na qual está conectado | 
| \p | porta na qual está conectado | 
| \u | nome do usuário | 
| \U | nome_usuário@maquina | 
| \\ | ‘ \’ | 
| \n | nova quebra de linha | 
| \t | tab | 
| \ | espaço | 
| \_ | espaço | 
| \R | hora no formato 24h (0-23) | 
| \r | hora no formato 12h (1-12) | 
| \m | minutos | 
| \y | ano com dois digitos | 
| \Y | ano com quatro digitos | 
| \D | formato completo da data | 
| \s | segundos | 
| \w | dia da semana no formato com 3 letras (Mon, Tue, ...) | 
| \P | am/pm | 
| \o | mês no formato de número | 
| \O | mês no formato com 3 letras (Jan, Feb, ...) | 
| \c | contador que cresce a cada comando | 
        ‘\’ seguido por qualquer outra
        letra apenas retorna aquela letra.
      
Você pode definir o prompt nos seguintes lugares:
Variável de Ambiente
            Você pode configurar o prompt em
            qualquer arquivo de configuração do MySQL, no grupo
            mysql. Por exemplo:
          
[mysql] prompt=(\u@\h) [\d]>\_
Linha de Comando
            Você pode definir a opção --prompt na
            linha de comando para mysql. Por exemplo:
          
shell> mysql --prompt="(\u@\h) [\d]> "
(usuário@maquina) [banco de dados]>
Interativamente
            Você também pode usar o comando prompt
            (ou \R) para alterar o seu prompt
            interativamente. Por exemplo:
          
mysql>prompt (\u@\h) [\d]>\_PROMPT set to '(\u@\h) [\d]>\_' (usuario@maquina) [banco de dados]> (usuario@maquina) [banco de dados]> prompt Returning to default PROMPT of mysql> mysql>
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.

