AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 20566
Accepted
Adam Matan
Adam Matan
Asked: 2012-07-10 01:28:25 +0800 CST2012-07-10 01:28:25 +0800 CST 2012-07-10 01:28:25 +0800 CST

Console do MySQL: Ctrl+C me deixando louco

  • 772

Há algo no console do MySQL que me deixa louco. Quando pressiono ctrl+ cpara cancelar o comando atual que está sendo digitado, o terminal sai.

Em todos os terminais que conheço ( *nixterminais, Python, PostgreSQL), ctrl+ ccancela o comando atual e ctrl+ dsai do terminal.

Esse problema foi relatado em 2003 e foi corrigido várias vezes desde então.

Existe uma maneira de:

  • Mude este comportamento, ou
  • Convencer a equipe de desenvolvimento do MySQL de que isso é realmente irritante?
mysql interface
  • 5 5 respostas
  • 12769 Views

5 respostas

  • Voted
  1. akutz
    2015-05-01T11:50:05+08:002015-05-01T11:50:05+08:00

    Pelo menos a versão 5.6.14 do cliente tem a opção --sigint-ignore para ignorar totalmente o manipulador SIGINT. Parece que foi adicionado em 7 de outubro de 2004 - então já faz um tempo, pelo menos. Acabei de testá-lo e impede que o CTRL-C cancele o cliente MySQL. No entanto, seria bom se CTRL-C também cancelasse o buffer de linha de comando atual, como faz no shell BASH - como faz a CLI do PostgreSQL. Eu bifurquei o MySQL para ver o quão difícil seria implementar algo assim. Vou postar uma fórmula Homebrew com um link tarball quando/se estiver pronto.

    ATUALIZAÇÃO 1 Já teve um daqueles dias? Criei o patch prometido , e então resolvi fazer um vídeo para demonstrá-lo. Funcionou! No entanto, não consegui desativá-lo! Bem, acontece que o MySQL realmente incorporou a funcionalidade ao cliente principal no ano passado ! Sim, o A para este Q é baixar pelo menos o cliente MySQL 5.7.3-794-g901d27f. Tem a funcionalidade que todos desejamos.

    EXEMPLO Na linha de comando, basta adicionar o sinalizador --sigint-ignore:

    mysql --host=127.0.0.1 --port=8900 --user=root -p --sigint-ignore DBNAME
    

    Ou, faça como eu fiz e crie um arquivo de configuração do MySQL para sua conta de usuário em $HOME/.my.cnf( %USERPROFILE%/.my.cnfno Windows) com o seguinte conteúdo:

    [mysql]
    sigint-ignore=TRUE
    

    Isso garantirá que todas as mysqlexecuções ignorem o irritante Ctrl-C e se comportem como um bom cliente SQL.

    • 29
  2. Derek Downey
    2012-07-10T07:20:34+08:002012-07-10T07:20:34+08:00

    Embora o comportamento ctrl+ seja irritante, você ainda pode usá-lo para cancelar a consulta atual. Você só precisa se treinar para usar mysql CLI, em vez de + !c\c\cctrlc

    • 23
  3. Damien Bezborodow
    2016-03-22T17:42:23+08:002016-03-22T17:42:23+08:00

    Boas notícias: a funcionalidade ^C do MySQL foi finalmente corrigida por #66583 .

    No changelog 5.7.0 :

    Anteriormente, Control+C no mysql interrompia a instrução atual se houvesse uma, ou saía do mysql se não. Agora Control+C interrompe a instrução atual, se houver, ou cancela qualquer linha de entrada parcial, mas não sai.

    • 12
  4. Best Answer
    Philᵀᴹ
    2012-07-10T01:52:07+08:002012-07-10T01:52:07+08:00

    Para alterar o comportamento, faça o download da fonte para a CLI do mysql e modifique o SIGINTmanipulador para se comportar como achar melhor, então recompile e instale.

    • 6
  5. atxdba
    2012-07-10T07:14:05+08:002012-07-10T07:14:05+08:00

    Qual versão do cliente você está usando? Lembro que esse é o comportamento mais antigo, mas as versões recentes de 5.1 e 5.5 parecem apenas cancelar o comando em execução sem sair do cliente. Então, novamente, pode ser que eu esteja usando as compilações Percona. Você pode tentar apenas executar o cliente deles, se for o caso.

    • 1

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve