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 / 48778
Accepted
Praveen Prasannan
Praveen Prasannan
Asked: 2013-08-27 20:50:31 +0800 CST2013-08-27 20:50:31 +0800 CST 2013-08-27 20:50:31 +0800 CST

mysqladmin não pega senha embutida

  • 772

Estou tentando definir uma tarefa cron para fazer backup da minha máquina escrava. Então eu preciso parar o escravo

Eu dei um comando

mysqladmin --user=root --password=test_pass stop-slave

Mas está dando erro:

mysqladmin: erro de conexão com o servidor em 'localhost': 'Acesso negado para usuário 'root'@'localhost' (usando senha: SIM)'

Agora eu tentei com o comando

mysqladmin --user=root --password stop-slave

Ele solicita a senha e eu dei como test_passe estava tudo bem.

Por que isso aconteceu? Qual é a alternativa?

NB: BTW minha versão mysql é mysql-5.0.95-5, faz algum sentido.

mysql authentication
  • 2 2 respostas
  • 18492 Views

2 respostas

  • Voted
  1. Best Answer
    Michael - sqlbot
    2013-08-28T06:05:51+08:002013-08-28T06:05:51+08:00

    Os argumentos da linha de comando estão sujeitos à interpretação pelo shell de comando do sistema, alterando o comportamento do comando ou alterando o valor dos argumentos antes de serem passados ​​para o programa chamado.

    Quando um argumento (como o valor para --password) contém um caractere que o shell pode interpretar, eles precisam ser citados (geralmente entre aspas simples 'no unix ou aspas duplas "no Windows) ou escapados individualmente (geralmente com uma barra invertida \antes de cada metacaractere ) para evitar a interpretação pelo shell.

    Embora os caracteres específicos sejam específicos do sistema, alguns caracteres a serem observados incluem:

    $ & ! \ [ ] < > `
    

    Se a senha, para um exemplo muito ruim, fosse definida como pa$$word...

    mysql --password=pa$$word     # does not work
    mysql --password='pa$$word'   # works
    mysql --password=pa\$\$word   # works, but slightly unclear what's going on at first glance
    

    Leitura adicional:

    • http://www.gnu.org/software/bash/manual/bashref.html#Quoting
    • http://www.sal.ksu.edu/faculty/tim/unix_sg/shell/metachar.html
    • http://www.grymoire.com/Unix/Quote.html

    Atualização: para escapar de aspas 'simples ou "duplas na senha, você pode escapá-las com uma barra invertida inicial ou colocar todo o argumento no estilo oposto de aspas se não houver outros caracteres que o estilo de citação escolhido não seja compatível com.

    mysql --password="like'this" # password has a single quote in the middle
    mysql --password='like"this' # password with a double quote in the middle
    

    Se você tiver uma aspa simples e outros caracteres especiais também, ficará preso com a barra invertida escapando porque, no unix, a aspa dupla é "mais fraca" do que uma aspa simples e muitos metacaracteres ainda são expandidos quando colocados entre aspas duplas, mas não simples citações.

    Isso não é específico do MySQL, mas se aplica a qualquer coisa com argumentos de linha de comando.

    Normalmente, você pode usar o echocomando para ver como o shell está interpretando seus argumentos.

    $ echo foo$bar 
    foo                # literal 'foo' plus the (empty) shell variable $bar
    
    $ echo foo\$bar
    foo$bar            # backslash prevents expansion of $bar as a variable
    
    $ echo "foo$$bar"  # weaker double quote doesn't prevent expansion so
    foo9691bar         # the $$ expands to the unix process id (pid) of the current shell
    
    $ echo 'foo$$bar'
    foo$$bar           # "stronger" single quote prevents shell expansion
    
    $ echo "foo'bar"
    foo'bar            # double quote allows single quote within the literal
    

    Acompanhamento: O shell bash (e presumivelmente alguns outros) permite escapar de aspas simples dentro de strings de aspas simples, embora a convenção seja bizarra (provavelmente baseada em alguma decisão há muito esquecida perdida agora na névoa do tempo):

    Substitua cada um 'dentro da string por '\''antes de colocar toda a string entre aspas simples... para que a string literal foo'barseja expressa como 'foo'\''bar'.

    Como eu disse, bizarro. Isso é necessário porque uma barra invertida escapa de uma aspa simples fora de uma string com aspas simples, uma barra invertida não escapa de nada dentro de uma string com aspas simples no bash e strings com aspas simples podem ser fechadas e reabertas por várias aspas simples, desde que não haja caracteres intermediários que têm um significado especial. Então '\''fecha as aspas da string, fornece o literal de escape e reabre as aspas da string.

    • 21
  2. dognose
    2018-11-28T07:32:58+08:002018-11-28T07:32:58+08:00

    Adição:

    Em uma máquina Windows, também lutamos com uma senha: ela continha %qual necessidade de escape %%(as aspas sozinhas não são suficientes aqui)

    • 0

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 fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 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

    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
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • 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

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