Comando Linux mysql
O comando mysql é um shell simples para comandos SQL . Ele pode ser usado interativamente , digitando comandos em um prompt especial ou você pode usá-lo para executar um script em lote contendo seus comandos SQL.
Descrição
Quando o mysql é usado interativamente, os resultados da consulta são apresentados em um formato de tabela. Quando usado de maneira não interativa, o resultado é apresentado em formato separado por tabulação . O formato de saída pode ser alterado usando as opções de comando.
A maneira mais simples de chamar o mysql é especificar o seu nome de usuário do MySQL com a opção -u e dizer ao mysql para solicitar sua senha com -p :
mysql -u nome de usuário -p
Você verá uma breve mensagem de introdução e será colocado no prompt do mysql> .
No prompt do mysql> , você pode inserir comandos do MySQL, como:
mysql> MOSTRA BASES DE DADOS;
Para listar os bancos de dados existentes, ou:
mysql> USE dbname ;
… para começar a usar o banco de dados denominado dbname , ou:
mysql> SELECT 21 * 2 AS significado_de_vida;
… para exibir o produto matemático de 2 e 21 .
Para finalizar sua sessão mysql e retornar ao prompt do shell, use o comando:
mysql> QUIT
Executando comandos do MySQL a partir de um script em lote
Em vez de usar o mysql interativamente, você pode executar instruções do MySQL a partir de um arquivo de script . Por exemplo, se você tiver um arquivo de texto chamado mysqlscript.txt contendo comandos do MySQL, um por linha, poderá usar este comando:
mysql -u nome de usuário -p nome_do_bd <mysqlscript.txt> output.txt
… e depois de solicitar sua senha, o mysql executaria os comandos em mysqlscript.txt no banco de dados db_name , gravando a saída no arquivo output.txt .
Para uma descrição detalhada de como instalar o MySQL no seu sistema e uma visão geral do uso interativo básico do mysql , consulte Uma Introdução ao MySQL .
Sintaxe
mysql [ opções ] nome_bd
Opções
O mysql suporta as seguintes opções, que podem ser especificadas na linha de comando ou nos grupos [mysql] e [client] de um arquivo de opções.
–Socorro, -? | Exiba uma mensagem de ajuda e saia. |
–auto-rehash | Habilite a rechamada automática. Esta opção está ativada por padrão, o que permite a conclusão do nome do banco de dados, da tabela e da coluna. Use –disable-auto-rehash para desativar o rehashing. Isso faz com que o mysql inicie mais rapidamente, mas você deve emitir o comando rehash se desejar usar a conclusão de nome.
Para completar um nome, digite a primeira parte e pressione Tab. Se o nome não for ambíguo, o mysql o completará. Caso contrário, você pode pressionar Tab novamente para ver os possíveis nomes que começam com o que você digitou até o momento. A conclusão não ocorre se não houver um banco de dados padrão. |
–auto-vertical-output | Faça com que os conjuntos de resultados sejam exibidos verticalmente se forem muito grandes para a janela atual e, caso contrário, usando o formato tabular normal. (Isso se aplica a declarações terminadas por ; ou \ G. ) Esta opção foi adicionada no MySQL 5.5.3. |
–batch, -B | Imprima os resultados usando a guia como separador de colunas, com cada linha em uma nova linha. Com esta opção, o mysql não usa o arquivo histórico. O modo de lote resulta em formato de saída nãoabular e escape de caracteres especiais. O escape pode ser desativado usando o modo bruto; veja a descrição para a opção –raw . |
–bind-address = endereço_ip | Em um computador com várias interfaces de rede, esta opção pode ser usada para selecionar qual interface é empregada ao se conectar ao servidor MySQL. Esta opção é suportada apenas na versão do cliente mysql fornecida com o MySQL Cluster. Não está disponível nas versões padrão do MySQL Server 5.5. |
–character-sets-dir = caminho | O diretório onde os conjuntos de caracteres estão instalados. |
–column-names | Escreva os nomes das colunas nos resultados. |
–column-type-info, -m | Exibir metadados do conjunto de resultados. |
–comentários, -c | Se os comentários devem ser preservados nas instruções enviadas ao servidor. O padrão é –skip-comments (descartar comentários), habilitar com –comments (preservar comentários). |
–compress, -C | Compacte todas as informações enviadas entre o cliente e o servidor, se ambas suportarem compactação. |
–database = db_name , -D db_name | O banco de dados a ser usado. Essa opção é útil principalmente em um arquivo de opções. |
–debug [ = debug_options ] , – # [ debug_options ] | Escreva um log de depuração . Uma string típica de debug_options é ‘ d: t: o, file_name ‘. O padrão é ‘ d: t: o, / tmp / mysql.trace ‘. |
–debug-check | Imprima algumas informações de depuração quando o programa sair. |
–debug-info, -T | Imprima informações de depuração e estatísticas de uso de memória e CPU quando o programa sair. |
–default-auth = plugin | O plug-in de autenticação do lado do cliente a ser usado.
Esta opção foi adicionada no MySQL 5.5.7. |
–default-character-set = charset_name | Use charset_name como o conjunto de caracteres padrão para o cliente e a conexão.
Um problema comum que pode ocorrer quando o sistema operacional usa utf8 ou outro conjunto de caracteres de vários bytes é que a saída do cliente mysql está formatada incorretamente, porque esse cliente MySQL usa o conjunto de caracteres latin1 por padrão. Geralmente, você pode corrigir esses problemas usando esta opção para forçar o cliente a usar o conjunto de caracteres do sistema. |
–delimiter = str | Defina o delimitador de instrução. O padrão é o caractere ponto-e-vírgula (” ; “). |
–disable-named-command | Desative os comandos nomeados. Use apenas o formulário \ * ou use comandos nomeados apenas no início de uma linha que termina com ponto e vírgula (” ; “). O comando mysql começa com esta opção ativada por padrão. No entanto, mesmo com essa opção, os comandos de formato longo ainda funcionam na primeira linha. |
–enable-cleartext-plugin | Ative o plug-in de autenticação de texto não criptografado mysql_clear_password . Esta opção foi adicionada no MySQL 5.5.27. |
–execute = instrução , instrução -e | Execute a instrução e saia. O formato de saída padrão é o produzido com –batch . Com esta opção, o mysql não usa o arquivo histórico. |
–force, -f | Continue mesmo se ocorrer um erro SQL. |
–host = host_name , -h host_name | Conecte-se ao servidor MySQL no host especificado. |
–html, -H | Produzir saída HTML . |
–ignore-spaces, -i | Ignore os espaços após os nomes das funções. O efeito dessa opção é descrito na discussão para o modo SQL IGNORE_SPACE . |
–init-command = str | Instrução SQL para executar após conectar-se ao servidor. Se a reconexão automática estiver ativada, a instrução será executada novamente após a reconexão. |
–números de linha | Escreva números de linha para erros. Desative isso com –skip-line-numbers . |
–local-infile [ = { 0 | 1 }] | Ative ou desative o recurso LOCAL para LOAD DATA INFILE . Sem valor, a opção ativa LOCAL . A opção pode ser dada como –local-infile = 0 ou –local-infile = 1 para desativar ou ativar explicitamente LOCAL . A ativação de LOCAL não terá efeito se o servidor também não o suportar. |
– comandos nomeados, -G | Ative os comandos mysql nomeados. Comandos de formato longo são permitidos, não apenas comandos de formato curto. Por exemplo, sair e \ q ambos são reconhecidos. Use –skip-named-command para desativar os comandos nomeados. |
–no-auto-rehash, -A | Isso tem o mesmo efeito que -skip-auto-rehash . Veja a descrição para –auto-rehash . |
– sem sinal sonoro, -b | Não apite quando ocorrerem erros. |
–no-nomeado-comandos, -g | Preterido, use –disable-named-command . –no-named-command foi removido no MySQL 5.5.3. |
–no-pager | Forma obsoleta de –skip-pager . Veja a opção –pager . –no-pager foi removido no MySQL 5.5.3. |
–no-tee | Forma obsoleta de – skip-tee . Veja a opção –tee . –no-tee é removido no MySQL 5.5.3. |
–um banco de dados, -o | Ignore as instruções, exceto aquelas que ocorrem enquanto o banco de dados padrão é aquele nomeado na linha de comandos. Esta opção é rudimentar e deve ser usada com cuidado. A filtragem de instruções é baseada apenas nas instruções USE .
Inicialmente, o mysql executa instruções na entrada porque especificar um banco de dados db_name na linha de comando é equivalente a inserir USE db_name no início da entrada. Então, para cada instrução USE encontrada, o mysql aceita ou rejeita as seguintes instruções, dependendo se o banco de dados nomeado é aquele na linha de comando. O conteúdo das declarações é imaterial. Suponha que o mysql seja chamado para processar este conjunto de instruções: DELETE FROM db2.t2; USE db2; DROP TABLE db1.t1; CRIAR TABELA db1.t1 (i INT); USE db1; INSERIR EM t1 (i) VALORES (1); CRIAR TABELA db2.t1 (j INT); Se a linha de comando for mysql –force –one-database db1 , o mysql manipulará a entrada da seguinte maneira: A instrução DELETE é executada porque o banco de dados padrão é db1 , mesmo que a instrução nomeie uma tabela em um banco de dados diferente. As instruções DROP TABLE e CREATE TABLE não são executadas porque o banco de dados padrão não é db1, mesmo que as instruções nomeiem uma tabela no db1. As instruções INSERT e CREATE TABLE são executadas porque o banco de dados padrão é db1, mesmo que a instrução CREATE TABLE nomeie uma tabela em um banco de dados diferente. |
–pager [ = comando ] | Use o comando fornecido para a saída da consulta de paginação. Se o comando for omitido, o pager padrão será o valor da sua variável de ambiente PAGER. Pagers válidos são menos , mais [ cat file name ], e assim por diante. Esta opção funciona apenas no Unix e apenas no modo interativo. Para desativar a paginação, use –skip-pager . Veja Comandos MySQL para mais informações sobre paginação de saída. |
–password [ = senha ], -p [ senha ] | A senha a ser usada ao se conectar ao servidor. Se você usar o formulário de opção abreviada ( -p ), não poderá ter espaço entre a opção e a senha. Se você omitir o valor da senha após a opção –password ou -p na linha de comando, o mysql solicitará uma.
A especificação de uma senha na linha de comando deve ser considerada insegura. Você pode usar um arquivo de opções para evitar fornecer a senha na linha de comando. |
–pipe, -W | No Windows, conecte-se ao servidor usando um pipe nomeado. Esta opção se aplica apenas se o servidor suportar conexões de pipe nomeado. |
–plugin-dir = caminho | O diretório no qual procurar plug-ins. Pode ser necessário especificar esta opção se a opção –default-auth for usada para especificar um plug-in de autenticação, mas o mysql não o encontrar.
Esta opção foi adicionada no MySQL 5.5.7. |
–port = port_num , -P port_num | O número da porta TCP / IP a ser usada para a conexão. |
–prompt = format_str | Defina o prompt para o formato especificado. O padrão é mysql> . As seqüências especiais que o prompt pode conter estão descritas na seção Comandos do MySQL . |
–protocol = { TCP | SOQUETE | TUBO | MEMÓRIA } | O protocolo de conexão a ser usado para se conectar ao servidor. É útil quando os outros parâmetros de conexão normalmente fazem com que um protocolo seja usado diferente daquele que você deseja. |
–quick, -q | Não armazene em cache cada resultado da consulta, imprima cada linha conforme ela é recebida. Isso pode diminuir a velocidade do servidor se a saída estiver suspensa. Com esta opção, o mysql não usa o arquivo histórico. |
–raw , -r | Para saída tabular, o “boxe” em torno das colunas permite distinguir um valor da coluna do outro. Para saída nãoabular (como é produzida no modo em lote ou quando a opção –batch ou –silent é fornecida), caracteres especiais são escapados na saída para que possam ser identificados facilmente. Nova linha , guia, NUL e barra invertida são escritos como \ n , \ t , \ 0 e \\ . A opção –raw desativa esse caractere de escape.
O exemplo a seguir demonstra a saída tabular versus não tabular e o uso do modo bruto para desativar o escape: mysql
mysql> SELECT CHAR (92);
+ ---------- + | CHAR (92) + ---------- + | \ + ---------- + mysql -s
mysql> SELECT CHAR (92);
CHAR (92) \\ mysql -s -r
mysql> SELECT CHAR (92);
CHAR (92) \ |
–reconectar | Se a conexão com o servidor for perdida, tente reconectar-se automaticamente. Uma única tentativa de reconexão é feita sempre que a conexão é perdida. Para suprimir o comportamento de reconexão, use –skip-reconnect . |
–safe-updates, –i-sou-um-manequim, -U | Permita apenas as instruções UPDATE e DELETE que especificam quais linhas modificar usando valores-chave. Se você configurou esta opção em um arquivo de opções, poderá substituí-la usando –safe-updates na linha de comando. |
–secure-auth | Não envie senhas para o servidor no formato antigo (anterior à 4.1.1). Isso evita conexões, exceto para servidores que usam o formato de senha mais recente. |
–show-warnings | Faça com que os avisos sejam mostrados após cada instrução, se houver algum. Esta opção se aplica ao modo interativo e em lote. |
–sigint-ignore | Ignore os sinais SIGINT (normalmente o resultado da digitação Control + C). |
–silenciosos | Modo silencioso. Produza menos produção. Esta opção pode ser dada várias vezes para produzir cada vez menos resultados.
Esta opção resulta em formato de saída não-triangular e escape de caracteres especiais. O escape pode ser desativado usando o modo bruto; veja a descrição para a opção –raw . |
–skip-column-names, -N | Não escreva nomes de colunas nos resultados. |
–skip-line-numbers, -L | Não escreva números de linha para erros. Útil quando você deseja comparar arquivos de resultados que incluem mensagens de erro. |
–socket = caminho , caminho -S | Para conexões com o host local, o arquivo de soquete Unix a ser usado ou, no Windows, o nome do canal nomeado a ser usado. |
–ssl * | As opções que começam com –ssl especificam se o servidor deve ser conectado usando SSL e indicam onde encontrar as chaves e certificados SSL. |
–tabela, -t | Exibe a saída no formato de tabela. Essa opção é o padrão para uso interativo, mas pode ser usada para produzir saída de tabela no modo em lote. |
–tee = nome_do_arquivo | Anexe uma cópia da saída ao arquivo fornecido. Esta opção funciona apenas no modo interativo. A seção chamada “MYSQL COMMANDS” discute mais os arquivos tee. |
–unfuffered, -n | Lave o buffer após cada consulta. |
–user = nome_do_usuário , -u nome_do_usuário | O nome de usuário do MySQL a ser usado ao se conectar ao servidor. |
–verbose, -v | Modo verboso. Produza mais informações sobre o que o programa faz. Esta opção pode ser dada várias vezes para produzir cada vez mais resultados. (Por exemplo, -v -v -v produz o formato de saída da tabela mesmo no modo em lote.) |
–version, -V | Exibir informações da versão e sair. |
–vertical, -E | Imprimir linhas de saída da consulta verticalmente (uma linha por valor da coluna). Sem essa opção, você pode especificar uma saída vertical para instruções individuais encerrando-as com \ G. |
–wait, -w | Se a conexão não puder ser estabelecida, aguarde e tente novamente em vez de interromper. |
–xml, -X | Produzir saída XML. Veja o manual do mysql para mais informações. |
Comandos do MySQL
O mysql envia cada instrução SQL que você emitir para o servidor a ser executado. Observe que todos os comandos de texto devem estar primeiro online e terminar com ‘ ; ‘
Há também um conjunto de comandos que o próprio mysql interpreta. Para obter uma lista desses comandos, digite help ou \ h no prompt mysql> :
? | ( \? ) | Sinônimo de ‘ajuda’. |
Claro | ( \ c ) | Comando Limpar. |
conectar | ( \ r ) | Reconecte-se ao servidor. Argumentos opcionais são db e host. |
delimitador | ( \ d ) | Definir delimitador de instrução. |
editar | ( \ e ) | Edite o comando com $ EDITOR. |
ego | ( \ G ) | Envie o comando para o servidor mysql, exiba o resultado verticalmente. |
Saída | ( \ q ) | Saia do mysql. O mesmo que sair. |
vai | ( \ g ) | Envie o comando para o servidor mysql. |
Socorro | ( \ h ) | Mostre esta ajuda. |
nopager | ( \ n ) | Desative o pager, imprima em stdout. |
notee | ( \ t ) | Não escreva em arquivo externo. |
pager | ( \ P ) | Defina PAGER [para_pagador]. Imprima os resultados da consulta via PAGER. |
impressão | ( \ p ) | Imprimir comando atual. |
pronto | ( \ R ) | Mude seu prompt do mysql, |
Sair | ( \ q ) | Saia do mysql. |
refazer | ( \ # ) | Reconstrua o hash de conclusão. |
fonte | ( \. ) | Execute um arquivo de script SQL. Leva um nome de arquivo como argumento. |
status | ( \ s ) | Obtenha informações de status do servidor. |
sistema | ( \! ) | Execute um comando do shell do sistema. |
tee | ( \ T ) | Defina outfile [to_outfile]. Acrescente tudo no arquivo especificado. |
usar | ( \ u ) | Use outro banco de dados. Leva o nome do banco de dados como argumento. |
charset | ( \ C ) | Mude para outro conjunto de caracteres. Pode ser necessário para processar o log de bin com conjuntos de caracteres de vários bytes. |
avisos | ( \ W ) | Mostrar avisos após cada declaração. |
nenhum aviso | ( \ w ) | Não mostre avisos após cada declaração. |
Exemplos
Para uma descrição detalhada da instalação do MySQL e uma visão geral dos comandos básicos, consulte Uma Introdução ao MySQL .
A seguir estão alguns outros comandos notáveis:
mysqldump -u esperança -p -h localhost hope_SMF> smf.sql
Faça backup do banco de dados “hope_SMF” no arquivo smf.sql após a verificação do nome de usuário e senha.
mysql> status
A execução do status no prompt mysql> forneceria resultados de status do MySQL semelhantes aos mostrados abaixo.
-------------- mysql Ver 14.14 Distrib 5.5.35, para debian-linux-gnu (i686) usando o readline 6.2 Identificação da conexão: 42 Banco de dados atual: Usuário atual: hope@localhost SSL: não está em uso Pager atual: stdout Usando outfile: '' Usando delimitador:; Versão do servidor: 5.5.35-0ubuntu0.13.10.2 (Ubuntu) Versão do protocolo: 10 Conexão: host local via soquete UNIX Conjunto de caracteres do servidor: latin1 Conjunto de caracteres db: latin1 Conjunto de caracteres do cliente: utf8 Conjunto de caracteres de conexão: utf8 Soquete UNIX: /var/run/mysqld/mysqld.sock Tempo de atividade: 2 horas 3 min 4 seg Tópicos: 1 Perguntas: 577 Consultas lentas: 0 Abre: 421 Tabelas niveladas: 1 Tabelas abertas: 41 Consultas por segundo avg média: 0,078 --------------
Comandos relacionados
myisamchk – Verifica, repara, otimiza ou busca informações sobre um banco de dados MySQL.
mysqldump – Uma ferramenta para fazer backup ou transferir bancos de dados MySQL.