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 / ubuntu / Perguntas / 1514709
Accepted
Borea Deitz
Borea Deitz
Asked: 2024-05-21 02:08:45 +0800 CST2024-05-21 02:08:45 +0800 CST 2024-05-21 02:08:45 +0800 CST

Como executo mysql_secure_installation em 22.04?

  • 772

Acabei de instalar o MySQL 8.0.36 no Ubuntu 22.04 e agora quero executar o mysql_secure_installation.

O guia para isso na Digital Ocean indica que no Ubuntu, a execução mysql_secure_installationproduz um loop lógico se você não configurar primeiro a senha do usuário 'root' do MySQL. Seguindo suas instruções, fiz o seguinte:

$ sudo mysql
[sudo] password for user: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'crocodile69210';
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

Depois de fazer isso, não consigo mysql_secure_installationmais correr. Quando tento, recebo um erro de senha:

$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: 
Error: Access denied for user 'root'@'localhost' (using password: YES)

Isso acontece quando eu insiro a senha de usuário 'root' do MySQL que estabeleci anteriormente ( crocodile69210) e minha sudosenha do sistema operacional. Se eu não inserir nenhuma senha, o resultado será o mesmo, exceto que a última linha é (using password: NO).

O que eu faço para poder correr mysql_secure_installation?

Editar: parece que a ALTER USERinstrução acima não define realmente uma senha. Se eu executar $ mysql -u root -pe literalmente copiar e colar a senha que defini, que ainda está visível no histórico do terminal, não consigo fazer login mysql:

$ mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Não tenho certeza se ou como isso ilumina o problema.

Edição 2: Trabalhando com a teoria de que o guia Digital Ocean está errado, desinstalei o MySQL ( $ sudo apt remove mysql-server) e reinstalei-o. Não executei o ALTER USERcomando fornecido no artigo DO. Ainda não consigo executar mysql_secure_installatione recebo os mesmos erros de senha de "Acesso negado" que recebi durante a primeira tentativa.

Edição 3: Mais informações

Quando instalei pela primeira vez mysql-servera partir de uma tela totalmente em branco, consegui usar $ sudo mysqlimediatamente para acessar o shell interativo do MySQL. Acho que depois de 1) desinstalar mysql-serverusando $ sudo apt remove mysql-server E 2) limpar completamente mysql-serverusando $ sudo apt purge mysql-server, depois de reinstalar ainda não consigo usar $ sudo mysql. Recebo o erro de senha "Acesso negado". Então, algo sobre a primeira instalação obviamente ainda está por aí. Descobrir o que é isso provavelmente ajudará a resolver todo o problema.

Edição final:

  1. No Ubuntu, apt purge(ou apt remove --purge) simplesmente não funciona para MySQL. Você deve seguir este procedimento para desinstalar completamente o MySQL do seu sistema.

  2. Gerei a senha para o usuário 'root' do MySQL usando um gerenciador de senhas e não inspecionei a senha. Tinha uma barra invertida ( \). Ao definir a senha usando o ALTER USERcomando, o shell interpreta isso como um caractere de escape e o remove antes de passá-lo para o MySQL. Portanto, minha senha 'root' não era realmente o que eu pensava que estava configurando.

Não use barras invertidas nas senhas do MySQL

22.04
  • 1 1 respostas
  • 50 Views

1 respostas

  • Voted
  1. Best Answer
    kos
    2024-05-21T05:00:02+08:002024-05-21T05:00:02+08:00

    A razão pela qual você não consegue mais fazer login como rootusando sudo mysqlé que

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'crocodile69210';
    

    definiu o método de autenticação para rootto mysql_native_password, substituindo o padrão auth_socket, que é o método que permite que um usuário do sistema com o mesmo nome do usuário MySQL (neste caso root) faça login no servidor sem fornecer uma senha.

    Felizmente, as instalações do MySQL em distros baseadas em Debian vêm com um usuário bastante privilegiado chamado debian-sys-maint, o que pode livrar você de problemas nesses casos.

    Primeiro, faça login no MySQL como debian-sys-maint(execute sudo less /etc/mysql/debian.cnfpara descobrir debian-sys-mainta senha):

    mysql -u debian-sys-maint -p<password>
    

    Então, como primeira tentativa, tente alterar roota senha de novamente:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'crocodile69210';
    

    (não há necessidade FLUSH PRIVILEGESdepois.)

    Por que?

    Porque tentei alterar roota senha usando exatamente o mesmo método que o seu e consigo fazer login perfeitamente no servidor em execução mysql -u root -pcrocodile69210.

    O procedimento que você seguiu parece estar correto: há uma chance de que, simplesmente, algo tenha dado errado durante o processo.


    Mas, independentemente, para fins de execução mysql_secure_installation, se definir a senha novamente não funcionar, provavelmente você poderá definir o método de autenticação para rootvoltar auth_sockete apenas executar sudo mysql_secure_installation; o guia que você está seguindo é bem antigo e é provável que o bug sobre o qual ele está alertando já tenha sido corrigido há muito tempo:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
    
    • 2

relate perguntas

  • Conexão lenta à Internet no Ubuntu 22.04 Beta [fechado]

Sidebar

Stats

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

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

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